несколько файлов dex определяют landroid / support / annotation / AnimRes
В тот момент, когда я добавил annotations поддержки Android к моим зависимостям
compile 'com.android.support:support-annotations:20.0.0'
Я получил эту ошибку:
- Сохранять широковещательный приемник после закрытия приложения
- URLConnection getContentLength () возвращает отрицательное значение
- preincrement / postincrement в java
- Есть ли способ получить количество меток чисел, используемых в файле jar
- Почему 128 == 128 возвращает false, но 127 == 127 возвращает true при преобразовании в обертки Integer?
Код ошибки: 2 Выход: НЕОПРЕДЕЛЕННЫЙ ТОП-УРОВЕНЬ EXCEPTION: com.android.dex.DexException: несколько файлов dex определяют Landroid / support / annotation / AnimRes; на com.android.dx.merge.DexMerger.readSortableTypes (DexMerger.java:594) на 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. (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' }
Кто-нибудь еще испытал эту проблему? Я попробовал решения отсюда .
- Где находится предварительный просмотр макета Android Studio?
- Как версия Java для Android относится к версии Java SE?
- как разобрать JSONArray в android
- Очистка и настройка домашнего приложения по умолчанию
- Как сравнить два дата без временной части?
- Можно ли использовать VectorDrawable в кнопках и TextViews с помощью android: DrawableRight?
- eclipse с Android sdk, ERROR: пространство кучи Java
- Фрагмент добавить или заменить не работает
Проблема в том, что android-support-annotations.jar
использовался как отдельная библиотека, содержащая annotations андроида, но по некоторым причинам эти annotations уже включены в последние версии файла android-support-v4.jar
.
Удаление баннера аннотаций решило проблему.
Build-> clean Project, и это сработало
Я удалил android-support-v4.jar, и он сработал.
Если это кордовой / ионный проект, это сработало для меня
добавьте эту строку в build.gradle под платформами android после строки 22, т. е. после применения плагина: ‘android’
configurations { all*.exclude group: 'com.android.support', module: 'support-v4' }
Решила эту точную проблему в проекте 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.
Как говорили другие пользователи, первыми элементами для устранения неполадок являются зависимости. Хотя, иногда вы можете бороться часами, и вы не найдете никаких проблем, чтобы вместо этого вы могли сосредоточиться на процессе сборки .
Изменение способа .dex
файлов .dex
иногда решает проблему. Вы можете выполнить следующие шаги:
- Откройте файл Build.gradle (app)
- Поиск задачи dexOptions
-
Измените его на:
dexOptions { incremental false }
Если вы не найдете задачу в своем файле, вы можете ее добавить.
Для меня причиной стала новая привязка данных
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
похоже, исправили его, поэтому просто используйте эти версии
У меня была та же проблема, но я удалил файлы сборки из папки сборки
имя_проект / приложение / сборки
и он удалил всю связанную с этим ошибку. «не может очистить проект», а также «dex errow with $ anim»
Мне удалось решить эту проблему. Причина заключалась в том, что я включил поддержку 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' }
Если вы импортируете AppCompat
в качестве проекта библиотеки и у вас также есть android-support-annotations.jar
в libs в другом месте, обязательно импортируйте AppCompat
библиотеку AppCompat
(она уже включает эту аннотацию lib). Затем удалите все android-support-annotations.jar
чтобы избежать объединения нескольких версий этой библиотеки.
Обновление Android SDK Tools исправило его для меня, теперь он просто видит копию в android-support-v4.jar
.
У меня была такая же проблема при использовании ant, и библиотека аннотаций автоматически включалась устаревшим sdk.dir/tools/ant/build.xml
.
Чистый проект работает как временное исправление, но проблема снова появится при следующей ошибке компиляции.
Чтобы более надежно зафиксировать, мне пришлось обновить зависимость от android support-v4
до com.android.support:support-v4:22.2.0
.
Поместите в свой build.gradle зависимость аннотаций поддержки в соответствии с вашим compileSdkVersion. Например: проект с compileSdkVersion 25 вы можете установить следующую зависимость:
compile 'com.android.support:support-annotations:25.0.1'
Это решит вашу проблему.
В моем случае у меня был файл с именем cache.xml
в /build/intermediates/dex-cache/cache.xml
в корневой папке проекта. Я удалил этот файл, восстановил проект, и это сработало для меня.
Я удалил android-support-v4.jar, и он сработал.
Объясните: андроид-поддержка-v4.jar конфликтует с моими другими .jar-файлами файлов проекта \ libs ** специально, когда вы работаете с java 8 на AS.
Поместите android-support-v4.jar в папку libs в eclipse. Очистите и создайте проект. Это решит проблему.
Другая причина, по которой такие сообщения могут возникать в Android Studio при создании и запуске, может быть причиной тегов приложений в ваших библиотеках.
Если у вас несколько проектов библиотеки Android, которые вы импортировали в качестве модhive. Перейдите в эти проекты и удалите tags
и все между ними. Это может вызвать проблемы в процессе сборки наряду с уже упомянутыми выше проблемами библиотеки поддержки.
Из / platform / android / libs / delete android-support-v4.jar. Меня устраивает.