1. 程式人生 > >解決android studio上“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65935”問題

解決android studio上“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65935”問題

problem 第三方jar包 span 沒有 ima default src 添加 其他

技術分享

我是在更換應用的一個jar包時發生的這個錯誤,網上查到說是因為同時在工程中引入了多個第三方jar包,導致調用的方法數超過了android設定的65935個(DEX 64K problem),進而導致dex無法生成,也就無法生成APK文件。

解決辦法如下:

1、在項目的build.gradle文件的dependencies 節中添加分包設置:

dependencies { 
... 
   compile ‘com.android.support:multidex:‘ 
   ... 
}

2、通過在defaultConfig節中設置multiDexEnabled標簽為true,開啟multi-dexing支持.

defaultConfig { 
   ... 
multiDexEnabled true 
... 
}

3、分三種情況:

  a.如果你未創建自己的Application.class,直接在AndroidManifest.xml文件的Application聲明中添加;

android:name="android.support.multidex.MultiDexApplication"

  b.你已經創建了自己的application,那麽將你之前繼承的android.app.Application換成android.support.multidex.MultiDexApplication

  c.如果你的application繼承的一些其他類,並且你不想改變它,那麽,如下重寫attachBaseContext().

public class MyApplication extends FooApplication { 
   @Override 
   protected void attachBaseContext(Context base) { 
      super.attachBaseContext(base); 
      MultiDex.install(this); 
   } 
}

4、編譯過程可能內存不足。為了修復它,設置以下

dexOptions { 
   incremental 
true javaMaxHeapSize "4g" }

5、重新build,生成簽名APK,安裝使用正常。

(PS:我是在使用1、2步之後就編譯安裝OK,所以並沒有往下走了技術分享)

參考:http://www.cnblogs.com/yeahgis/p/4660873.html

http://stackoverflow.com/questions/27377080/after-update-of-as-to-1-0-getting-method-id-not-in-0-0xffff-65536-error-i

解決android studio上“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65935”問題