2017-10-14 143 views
0

我正在嘗試生成我的應用程序和我的已簽名apk收到以下錯誤錯誤:將字節碼轉換爲dex時出錯:原因:com.android.dex.DexException:--main-dex-list中的太多類,主dex容量超過

Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded

Error:Execution failed for task ':app:transformClassesWithDexForRelease'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing java process with 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

「但它不爲我工作」 - 請提供一個[mcve]展示你所嘗試和詳細解釋的是什麼「不適合我」的意思。 – CommonsWare

+0

我將此添加到我的proguard文件中 - -keepclassmembers類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 **我還試圖刪除我的應用程序未使用的軟件包和庫,其中包括此太 - dexOptions { keepRuntimeAnnotatedClasses假 }但這些都不起作用。我不明白是什麼導致這個錯誤 –

+0

請使用您的問題中的編輯按鈕添加代碼/錯誤消息。 –

回答

0

我從的build.gradle文件中刪除這一行解決問題

multiDexKeepProguard file('proguard-rules.pro')

這是我的build.gradle文件怎麼現在看起來

buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     ext.enableCrashlytics = true 
    } 
} 
相關問題