参见英文答案 > 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