Несколько файлов dex определяют landroid/support/annotation/AnimRes
В тот момент, когда я добавил аннотации поддержки андроида к моим зависимостям
compile 'com.android.support:support-annotations:20.0.0'
Я получил эту ошибку:
Код ошибки: 2 Выход: НЕОПРЕДЕЛЕННОЕ ТОП-УРОВНЕ ИСКЛЮЧЕНИЕ: com.android.dex.DexException: несколько файлов dex определяют Landroid/support/annotation/AnimRes; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) на com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) на com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) на com.android.dx.merge.DexMerger.merge(DexMerger.java:188) на com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) на com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) на com.android.dx.command.dexer.Main.run(Main.java:230) на com.android.dx.command.dexer.Main.main(Main.java:199) на com.android.dx.command.Main.main(Main.java:103)
build.gradle
android {
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 10
targetSdkVersion 19
}
}
dependencies {
compile 'com.android.support:support-v4:19.0.0'
compile 'com.crashlytics.android:crashlytics:1.+'
compile 'com.android.support:support-annotations:20.0.0'
}
Кто-нибудь еще испытал эту проблему? Я пробовал решения от здесь.
Ответы
Ответ 1
Проблема заключается в том, что android-support-annotations.jar
используется как отдельная библиотека, содержащая аннотации android, но по некоторым причинам эти аннотации уже включены в последние версии файла android-support-v4.jar
.
Удаление аннотаций помогло решить проблему.
Ответ 2
Build- > clean Project, и он работал
Ответ 3
Я удалил android-support-v4.jar, и он сработал.
Ответ 4
Если это проект cordova/ionic, это сработало для меня
добавьте эту строку в build.gradle под платформами /android после строки номер 22 i.e после применить плагин: 'android'
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
Ответ 5
Решил эту точную проблему в проекте Cordova, который использовал плагин facebook. Я смог успешно построить, комментируя эту строку из platforms\android\project.properties
, как показано:
# cordova.system.library.1=com.android.support:support-v4:+
И, комментируя эту строку из platforms\android\build.gradle
, как показано:
// compile "com.android.support:support-v4:+"
Затем выполните сборку. Проблема возникла, когда я установил (katzer/cordova-plugin-local-notifications), который добавил эти строки, но создал конфликт, поскольку библиотека, которую он добавляла в сборку, уже была частью сборки плагина facebook.
Ответ 6
Как говорили другие пользователи, первыми элементами для устранения неполадок являются зависимости. Хотя иногда вы можете бороться в течение нескольких часов, и вы не найдете никаких проблем, поэтому можете сосредоточиться на процессе сборки.
Изменение способ создания файлов .dex
иногда решает проблему. Вы можете выполнить следующие шаги:
Если вы не найдете задачу в своем файле, вы можете ее добавить.
Ответ 7
У меня была та же проблема, но я удалил файлы сборки из папки сборки
имя_проекта/приложение/сборки
и он удалил всю связанную с этим ошибку. "не может очистить проект", а также "dex errow with $anim"
Ответ 8
Мне удалось исправить эту проблему. Причина заключалась в том, что я включил поддержку 19.0.0 в поддержку зависимостей, но 19.1.0. Подробнее см. здесь
Так что это должно быть
dependencies {
compile 'com.android.support:support-v4:19.1.0'
compile 'com.crashlytics.android:crashlytics:1.+'
compile 'com.android.support:support-annotations:20.0.0'
}
Ответ 9
Если вы импортируете AppCompat
в качестве проекта библиотеки и у вас также есть android-support-annotations.jar
в libs в другом месте, обязательно импортируйте всюду AppCompat
только библиотеку (она уже включает эту аннотацию lib). Затем удалите все android-support-annotations.jar
, чтобы избежать объединения нескольких версий этой библиотеки.
Ответ 10
Обновление Android SDK Tools исправило это для меня, теперь оно просто видит копию в android-support-v4.jar
.
У меня была та же проблема при использовании ant, и библиотека аннотаций автоматически включалась устаревшим sdk.dir/tools/ant/build.xml
.
Ответ 11
Чистый проект работает как временное исправление, но проблема снова появится при следующей ошибке компиляции.
Чтобы установить более надежно, мне пришлось обновить зависимость от android support-v4
до com.android.support:support-v4:22.2.0
.
Ответ 12
Для меня причиной стала новая привязка данных lib
com.android.databinding:dataBinder:1.0-rc2
он каким-то образом использовал противоречивую версию аннотаций lib, которую я не мог заставить с помощью
configurations.all {
resolutionStrategy {
force group: 'com.android.support', name: 'support-v4', version: '23.1.0'
force group: 'com.android.support', name: 'appcompat-v7', version: '23.1.0'
force group: 'com.android.support', name: 'support-annotations', version: '23.1.0'
}
}
но новые версии rc3
и rc4
, похоже, исправили его, поэтому просто используйте эти версии
Ответ 13
Поместите в build.gradle зависимость аннотаций поддержки в соответствии с вашим компиляторомSdkVersion. Например: проект с compileSdkVersion 25 можно установить следующую зависимость:
compile 'com.android.support:support-annotations:25.0.1'
Это решит вашу проблему.
Ответ 14
В моем случае у меня был файл под названием cache.xml
под /build/intermediates/dex-cache/cache.xml
в корневой папке проекта. Я удалил этот файл, восстановил проект и работал у меня.
Ответ 15
Я удалил android-support-v4.jar, и он сработал.
Объяснение. android-support-v4.jar противоречит моим другим .jar файлам файлов проекта \libs **, особенно когда вы работаете с java 8 на AS.
Ответ 16
Поместите поддержку android-support-v4.jar в папку libs в eclipse. Очистите и создайте проект. Это решит проблему.
Ответ 17
Другая причина, по которой такие сообщения могут возникать в Android Studio при создании и запуске, может быть причиной тегов приложений в ваших библиотеках.
Если у вас несколько проектов библиотеки Android, которые вы импортировали в качестве модулей. Перейдите в эти проекты и удалите теги <application> ... </application>
и все, что между ними. Это может вызвать проблемы в процессе сборки наряду с уже упомянутыми проблемами библиотеки поддержки.
Ответ 18
От/platform/android/libs/
удалите android-support-v4.jar.
Это работает для меня.