我正在尝试为我的应用生成已签名的apk,并收到以下错误
错误:将字节码转换为dex时出错: 原因:com.android.dex.DexException: - main-dex-list中的类太多,主要的dex容量超出
错误:任务':app:transformClassesWithDexForRelease'执行失败。 com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:执行java进程时出错main class com.android.dx.command.Main with arguments {--dex --force-jumbo --num-threads = 4 --multi-dex --main-dex-list C:\ Users \ user \ Desktop \ Mystuff \ GetALifFitness \ WonderStree-Production \ app \ build \ intermediates \ multi-dex \ release \ maindexlist.txt --output C:\ Users \ user \ Desktop \ Mystuff \ GetALifFitness \ WonderStree-Production \ app \ build \ intermediates \ transforms \ dex \ release \ folders \ 1000 \ 1f \ main C:\ Users \ user \ Desktop \ Mystuff \ GetALifFitness \ WonderStree-Production \ app \ build \ intermediates \ transforms \ proguard \ release \ jars \ 3 \ 1f \ main.jar }
我已经从这个链接尝试了一些解决方案Too many classes in --main-dex-list, main dex capacity exceeded但它对我不起作用。 你们能告诉我可能出现的问题或向我提供解决方案吗?谢谢。
我已经尝试过 - 这就是我的proguard文件的样子:
-keepclassmembers class toan.android.floatingactionmenu.FloatingActionsMenu$RotatingDrawable { void set*(***); *** get*(); }
-ignorewarnings
-keep class * { public private *; }
-dontwarn okio.**
-keep public class com.google.android.gms.* { public *; }
-dontwarn com.google.android.gms.**
-dontwarn com.mixpanel.**
我添加的build.gradle
文件:
dexOptions {
javaMaxHeapSize "4g"
keepRuntimeAnnotatedClasses false
}
另外,我删除了不需要的库。然而这个问题没有解决。
答案 0 :(得分:1)
我通过从build.gradle文件
中删除此特定行来解决此问题multiDexKeepProguard文件(' proguard-rules.pro')
这就是我的build.gradle文件现在的样子
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ext.enableCrashlytics = true
}
}