Подтвердить что ты не робот

Несколько файлов 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'
}

Кто-нибудь еще испытал эту проблему? Я пробовал решения от здесь.

4b9b3361

Ответ 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 иногда решает проблему. Вы можете выполнить следующие шаги:

  • Откройте файл Build.gradle(приложение)
  • Поиск задачи dexOptions
  • Измените его на:

    dexOptions {
      incremental false 
    }
    

Если вы не найдете задачу в своем файле, вы можете ее добавить.

Ответ 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. Это работает для меня.