Duplicate entry: com/android/volley/AuthFailureError.class при компиляции проекта в студии android

Я использую внешние библиотеки payu money sdk и linkedin-sdk, оба используют библиотеки волейбола, которые при компиляции проекта дают дубликат записи AuthFailureError.class

Ошибка: выполнение выполнено для задачи ': app: packageAllDebugClassesForMultiDex'.

java.util.zip.ZipException: дублировать запись: com/android/volley/AuthFailureError.class "

Я также добавил следующий код, чтобы исключить модуль, но все же ошибка

configurations{ all*.exclude module: 'com.android.volley' }

пожалуйста, помогите

Ответ 1

Я наткнулся на эту же ошибку, и после прочтения этого я смог ее решить.

Попробуйте добавить эту строку в файл dir build.gradle вашего приложения -

android{
configurations {
    all*.exclude group: 'com.android.volley'
}}

Надеюсь, что это поможет.

Ответ 2

Добавить multiDexEnabled true в разделе defaultConfig вашего файла gradle

Тогда

compile 'com.android.support:multidex:1.0.1' в ваших зависимостях

Наконец, добавьте ниже в свой класс приложения:

 @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

Кроме того, проверьте, используете ли вы volley.jar в своей папке libs. Если это так, удалите этот файл jar и снова скомпилируйте. Иногда конфликты jar конфликтуют с компиляторами с использованием удаленного источника.

Ответ 3

просто удалите дубликат jar файла (обратите внимание: используйте новую версию, удалите старую версию) для импорта "com.android.volley.AuthFailureError" в build.gradle. Затем очистите проект и перестройте проект, а затем запустите, вы получите результат.

Ответ 4

У меня возникла эта проблема, когда я попытался сгенерировать APK (release), и я решил, что он меняет buildin-sdk build.gradle:

From:

dependencies {
    compile 'com.android.support:support-annotations:20.0.0'
    compile 'com.android.support:support-v4:21.0.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/volley.jar')
    androidTestCompile('junit:junit:4.12') }

To:

dependencies {
    compile 'com.android.support:support-annotations:20.0.0'
    compile 'com.android.support:support-v4:21.0.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.volley:volley:1.0.0'
    androidTestCompile('junit:junit:4.12') }

Ответ 5

Это пример того, как исключать классы в зависимостях, если в gradle имеется повторяющаяся запись.

 compile ('com.google.api-client:google-api-client-android:1.17.0-rc') {
    exclude module: 'httpclient'
 }

или попробуйте своим путем, просто добавьте еще текст

configurations {
     all*.exclude group: 'com.android.support', module: 'support-v4'
}

Итак, теперь вам нужно

Поиск CTRL + SHIFT + N в студии android для класса AuthFailureError.class Посмотрите, какая банка содержит это, и удалите ее, как указано выше (это просто пример/вам нужно выяснить класс дубликатов и вручную удалить его)

Ответ 6

Хорошо, я получил свой ответ

На mac вместо управления n это команда 0, и мне нужна команда

конфигурации {   все *.exclude module: 'volley-release' }

Ответ 7

Просто удалите свою библиотеку волейбола из зависимости. Попробуйте очистить и перестроить проект, он работает для меня.  Ex. payusdk также реализует библиотеку волейбола, поэтому это исключение причины показывает дубликат записи. Надеюсь это работает. потому что я также нашел эту ошибку, и я делаю все, что она работает. Благодарю.

Ответ 8

У меня была аналогичная проблема, когда я строил Jenkins, странно, она отлично работала на моей локальной машине. После добавления ниже исключить это работало как на локальной машине, так и на Jenkins.

android{
configurations {
    all*.exclude group: 'com.android.volley'
}}

Я добавил блок конфигурации в мое приложение build.gradle внутри секции Android.

Если это важно, версия SDK для компиляции - 22, а версия Build Tools - 25.0.0

Это работало как прелесть.

Ответ 9

Используйте приведенную ниже команду на терминале Android, чтобы получить данные о конфликтах зависимостей - [Заменить своим именем приложения]

./gradlew -q :<app>:dependencyInsight --dependency volley --configuration compile

Если вы используете последнюю библиотеку Volley из android [https://github.com/google/volley/releases], добавьте ниже две строки в файле build.gradle под каждым из записи компиляции библиотеки, которые имеют конфликт.

Пример:

compile('com.xyz:abc:1.1.0-RELEASE') {
        exclude module: 'library'
        exclude group: 'com.mcxiaoke.volley'
}