Ошибка: ошибка преобразования байт-кода в dex: Причина: com.android.dex.Dexception: слишком много классов в --main-dex-list, превышена основная емкость dex

Я пытаюсь создать подписанный apk своего приложения и получаю следующую ошибку

Ошибка: ошибка преобразования байт-кода в dex: Причина: com.android.dex.Dexception: слишком много классов в --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-процесса с основной класс com.android.dx.command.Main с аргументами {--dex --force-jumbo --num-threads = 4 --multi-dex --main-dex-list C: \ Users \ user \ Desktop \ Mystuff \ GetALifFitness \ WonderStree-Production \ app \ build \ intermediateates \ multi-dex \ release \ maindexlist.txt --output C: \ Users \ user \ Desktop \ Mystuff \ GetALifFitness \ WonderStree-Production \ app \ build \ intermediate \ transforms \ dex \ release \ папки \ 1000 \ 1f \ main C: \ Users \ user \ Desktop \ Mystuff \ GetALifFitness \ WonderStree-Production \ app \ build \mediates \ transforms \ proguard \ release \ jars \ 3 \ 1f \ main.jar }

Я пробовал некоторые решения этой проблемы по этой ссылке Слишком много классов в --main-dex-list, превышена емкость main dex Но у меня это не работает. Не могли бы вы, ребята, подсказать мне, что может быть не так, или предложить решение? Спасибо.

Что я уже пробовал - вот так выглядит мой файл 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
}

Также я удалил ненужные библиотеки. Пока эта проблема не решена.


person neeraj Saxena    schedule 14.10.2017    source источник
comment
Но у меня это не работает - предоставьте минимальный воспроизводимый пример, демонстрирующий то, что вы пробовали, и подробно объясните , что у меня не работает значит.   -  person CommonsWare    schedule 14.10.2017
comment
Я добавил это в свой файл программы Proguard - класс -keepclassmembers toan.android.floatingactionmenu.FloatingActionsMenu $ RotatingDrawable {void set * (); *** получать*(); } -ignorewarnings -keep class * {публичные частные *; } -dontwarn okio. -keep public class com.google.android.gms. {public ; } -dontwarn com.google.android.gms. * -dontwarn com.mixpanel. ** И я также попытался удалить неиспользуемые пакеты и библиотеки из моего приложения и включил это тоже - dexOptions {keepRuntimeAnnotatedClasses false} Но нет из этого работает. Я не понимаю, что вызывает эту ошибку   -  person neeraj Saxena    schedule 14.10.2017
comment
Пожалуйста, используйте кнопку редактирования в вашем вопросе, чтобы добавить код / ​​сообщения об ошибках.   -  person James Z    schedule 14.10.2017
comment
Выполнено. Пожалуйста, взгляните на это.   -  person neeraj Saxena    schedule 14.10.2017
comment
Пожалуйста, ответьте на свои вопросы ниже, чтобы другие могли лучше понять это. Не обновлять вопрос   -  person OneCricketeer    schedule 16.10.2017
comment
Выполнено. Спасибо   -  person neeraj Saxena    schedule 16.10.2017


Ответы (1)


Я решил проблему, удалив именно эту строку из файла build.gradle

файл multiDexKeepProguard ('proguard-rules.pro')

Так теперь выглядит мой файл build.gradle

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        ext.enableCrashlytics = true
    }
}
person neeraj Saxena    schedule 16.10.2017