field ID not in [0, 0xffff]: 65536

com.android.dex.DexIndexOverflowException: field ID not in [0, 0xffff]: 65536

如果你的项目工程本身没什么问题,而且还已经加了Google推荐的分包代码,如下所示:

    defaultConfig {
        multiDexEnabled true
}
public class XxxApplication extends Application {

    private static final String TAG = "CcbApplication";


    protected void attachBaseContext(Context paramContext) {
        super.attachBaseContext(paramContext);
        MultiDex.install(this);
    }

结果因为项目工程太大,还是会出现上面的报错的话,可以尝试一下如下的做法:

  • 主模块build.gradle
    dexOptions {
        incremental true
        preDexLibraries false
        javaMaxHeapSize "6g"
        additionalParameters = ["--set-max-idx-number=60000"]
        keepRuntimeAnnotatedClasses false
//        additionalParameters += '--multi-dex'
//        additionalParameters += '--set-max-idx-number=59000'
//        additionalParameters += '--minimal-main-dex'
        jumboMode true
    }

  • gradle.properties
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true

android.enableD8=false
android.useDexArchive=false


  • 参考博客:

https://www.jianshu.com/p/fe27d51ebc77

你可能感兴趣的:(field ID not in [0, 0xffff]: 65536)