Кодовое имя: Android Сбой сборки со странным исключением - PullRequest
2 голосов
/ 28 марта 2020

С сегодняшнего дня (28.03.) Сборка моего приложения (сервер сборки CN1) создает исключение при сборке, которое я не понимаю. Сборка вчера сработала без ошибок. Ошибка из журнала ошибок:

Dex: The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
    at com.android.dx.merge.DexMerger$8.updateIndex(DexMerger.java:565)
    at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:276)
    at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:574)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:166)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
    at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
    at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
:transformDexArchiveWithDexMergerForDebug FAILED
:transformDexArchiveWithDexMergerForDebug (Thread[Daemon worker,5,main]) completed. Took 0.334 secs.

FAILURE: Build failed with an exception.

Может кто-нибудь помочь мне понять, что пошло не так?

1 Ответ

1 голос
/ 28 марта 2020

Ошибка:

Dex: The number of method references in a .dex file cannot exceed 64K.

В этом случае добавьте подсказку сборки: android.multidex=true

Как написано в руководстве разработчика ( ссылка ):

android .multidex -> Boolean true / false по умолчанию false. Multidex позволяет двоичным файлам Android ссылаться на более чем 65536 методов. Это немного замедляет сборку, поэтому по умолчанию у нас она отключена, но если вы получаете ошибку сборки с указанием этого ограничения, вы должны включить его.

...