Ошибка Cordova для сборки только для Android: com.android.dex.DexException: несколько файлов dex определяют Landroid/support/annotation/AnimRes;
Я просмотрел еще три ресурса по этой проблеме, но никто не работал.
My iOS строит отлично, но андроид дает эту ошибку независимо от того, что я пытаюсь изменить.
- Уже пытался создать новый проект, но андроид сохраняет ту же проблему.
- Все Android SDK установлены
Здесь следует ошибка:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/Users/sakai/Library/Android/sdk/build-tools/23.0.1/dx --dex --no-optimize --output /Users/sakai/mobile/cupomap/platforms/android/build/intermediates/dex/debug --input-list=/Users/sakai/mobile/cupomap/platforms/android/build/intermediates/tmp/dex/debug/inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 5.343 secs
/Users/sakai/mobile/cupomap/platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
Error code 1 for command: /Users/sakai/mobile/cupomap/platforms/android/gradlew with args: cdvBuildDebug,-b,/Users/sakai/mobile/cupomap/platforms/android/build.gradle,-Dorg.gradle.daemon=true
ERROR building one of the platforms: Error: /Users/sakai/mobile/cupomap/platforms/android/cordova/build: Command failed with exit code 8
You may not have the required environment or OS to build this project
Error: /Users/sakai/mobile/cupomap/platforms/android/cordova/build: Command failed with exit code 8
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:139:23)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Process.ChildProcess._handle.onexit (child_process.js:823:5)
Ответы
Ответ 1
Имела ту же проблему, добавив следующие строки в файл build.gradle, расположенный в платформах /android, сделал это для меня.
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
Я скопировал его после строки:
apply plugin: 'android'
Надеюсь, что это поможет.
Ответ 2
Это сработало для меня:
Просто удалите папку "build" внутри платформ /Android и запустите cordova build android
. Для меня его работала
Ответ 3
Это почти наверняка из-за противоречивых плагинов. То, как я это решил (надеюсь, что вы комфортно сидите), должен был удалить каждый плагин, а затем добавить каждый из них один за другим и попытаться построить. Насколько я вижу, это единственный реальный способ их диагностировать.
Обычно это зависимости от какой-либо библиотеки Google (игровые сервисы или местоположение), поэтому я бы сказал, что наиболее вероятными виновниками являются плагины, участвующие в размещении или push-уведомлениях.