“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题解决

来源:互联网 发布:金窗教务系统源码 编辑:程序博客网 时间:2024/06/08 06:24

在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件。

解决办法如下:

1、在项目的build.gradle文件的dependencies 节中添加分包设置:

dependencies { ...    compile 'com.android.support:multidex:1.0.0'    ... }
2、通过在defaultConfig节中设置multiDexEnabled标签为true,开启multi-dexing支持.
defaultConfig {    ... multiDexEnabled true ... }

3、设置Application(三种情况

(1)未创建Application,直接在AndroidManifest.xml文件的Application声明中添加

android:name="android.support.multidex.MultiDexApplication"
(2)Application 继承 android.support.multidex.MultiDexApplication

(3)override  attachBaseContext()方法

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



0 0