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'
}