java - 迁移到 Android Studio 2.2 后出现 DexIndexOverflowException

标签 java android android-studio android-gradle-plugin android-multidex

我刚刚将我的项目移至 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- 在应用程序级别 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>

关于java - 迁移到 Android Studio 2.2 后出现 DexIndexOverflowException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918384/

相关文章:

java注解判断被注解的方法是否执行

android - 渲染错误android studio

找不到 android.support.v7.widget.cardview

android - Gradle Kotlin DSL : Define Android build tools version in unique place

java - 基于HTTP请求的Android聊天

java - 初始化RSelenium时出现"PATH to JAVA not found. Please check JAVA is installed."错误

android - 使用 Android 编程检测连接到我的 wifi 路由器的所有设备

android - 单击android主页按钮时视频从暂停状态继续

java - 在新的 Android Studio 中找不到 UI 设计器

java - Neo4J-Java : Result incomplete