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

来源:互联网 发布:儿童机器人编程入门 编辑:程序博客网 时间:2024/05/18 01:13

错误:

Error:Executionfailed for task ':app:transformClassesWithDexForDebug'.

>com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

原因:同时在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(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、未创建自己的Application.class,直接在AndroidManifest.xml文件的Application声明中添加;

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

4、重新build,生成签名APK,安装使用正常。

二、

如果已经创建了自己的Application只需要在自己的Application中重写

@Overrideprotected void attachBaseContext(Context base) {    super.attachBaseContext(base);    MultiDex.install(this);}
此方法即可

之后builld运行

1 0
原创粉丝点击