微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Gradle构建失败:Dex文件不能超过64k

参见英文答案 > Unable to build apk: The number of method references cannot exceed 64K                                    3个
每当我按项目构建并准备在我的设备上启动时,我都会收到此错误

Error:The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at 07001

另外,我收到此错误

Error:Execution Failed for task ‘:app:transformClassesWithDexForDebug’.
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘C:\Program Files\Java\jdk1.8.0_91\bin\java.exe” finished with non-zero exit value 2

它说gradle构建失败了两个错误

所以我有一些问题:

>什么是dex文件
>我没有直接使用它们,为什么我会得到上面的错误
>什么是dex文件
>这些文件对.APK文件的大小有什么要说的吗?

在我停止使用proguard进行调试构建之后,这些错误再次出现,因为StackTrace没有显示,而且在我激活proguard之前我有错误.

我曾经有过这个错误,我删除了dex文件夹,它解决了它,但现在它突然不再了.

我的gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsversion "23.0.3"

    defaultConfig {
        applicationId "com.example.myproject"
        minSdkVersion 15
        targetSdkVersion 23

    }

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }
}

dependencies {

    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1'
    compile 'com.android.support:support-v4:23.3.0'
    compile 'com.google.android.gms:play-services:9.2.0'
    compile 'com.google.android.gms:play-services-ads:9.2.0'
}

解决方法:

添加的依赖项越多 – 方法计数越高.更改您的gradle以反映这一点:

defaultConfig {
    ...
    minSdkVersion 15
    targetSdkVersion 23
    ...

    // Enabling multidex support.
    multiDexEnabled true
}

这是一个直接的修复,只有在你的minSdkVerison为14或更高时才有效.
还要添加以下依赖项:

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

有时,您利用的依赖项将(单独)引用相同的库 – 您可能有许多方法,这些方法是加倍,三倍,四倍等等.请查看此SO答案以解决此问题并始终减少您的APK大小.
gradle – library duplicates in dependencies

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐