移动到 Android Studio 2.2 后出现 DexIndexOverflowException

DexIndexOverflowException after moving to Android Studio 2.2

我刚刚将我的项目移动到 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: method ID not in [0, 0xffff]: 65536

我应该怎么做才能消除这个错误?

你的项目中的方法引用数超过了65536个,这是一个dex文件中可以存在的最大数量。在这种情况下,您应该按照以下步骤声明您的应用程序类型 MultiDex :

1- 将 multidex 依赖项添加到您的应用级别 build.gradle :

 compile 'com.android.support:multidex:1.0.1'

2- 在应用级别的 defaultConfigs 中启用 multidex build.gradle :

android {

defaultConfig {
    ...

    // Enabling multidex support.
    multiDexEnabled true
   }
...
}

3- 定义一个扩展 MultidexApplication 的新 class MyApplication,它将作为您应用程序的入口点。

public class MyApplication extends MultidexApplication

4- 最后,您应该在 AndroidManifest.xml

中声明这个新的 class
<?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>

项目编译生成dex文件,dex最多可处理65536个方法

你的项目编译超过65536个方法,所以你应该改善依赖关系启用MultiDex,将你的代码拆分成更多的dex文件

看看这里 https://developer.android.com/studio/build/multidex.html 更好的方法来解决你的问题。