我刚把我的项目移到Android Studio 2.2,我无法生成我的apk。
我收到此错误消息:
错误:任务':app:transformClassesWithDexForRelease'执行失败。
com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexIndexOverflowException:方法ID不在[0, 0xffff]:65536
我该怎么做才能消除此错误?
答案 0 :(得分:3)
项目中方法引用的数量超过65536,这是一个dex文件中可以存在的最大数量。在这种情况下,您应该按照以下步骤声明您的应用程序类型为MultiDex:
1-将multidex依赖项添加到您的应用级build.gradle
:
compile 'com.android.support:multidex:1.0.1'
2-在app level build.gradle中的defaultConfigs中启用multidex:
android {
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
3-定义一个新类MyApplication,它扩展了MultidexApplication,它将作为应用程序的入口点。
public class MyApplication extends MultidexApplication
4-最后,您应该在AndroidManifest.xml中声明这个新类
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package.name">
<application
android:name=".path-to.MyApplication">
...
</application>
</manifest>
答案 1 :(得分:1)
项目编译生成dex文件,dex可以处理直到65536个方法。
您的项目编译方法超过65536种,因此您应改善依赖关系或启用MultiDex ,将代码拆分为更多dex文件
在这里看看https://developer.android.com/studio/build/multidex.html更好的方法来解决它。