Ошибка 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-уведомлениях.