移动到 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 更好的方法来解决你的问题。
我刚刚将我的项目移动到 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 更好的方法来解决你的问题。