Ява.утиль.застежка-молния.ZipException: дублировать запись во время packageAllDebugClassesForMultiDex
Я не уверен, что эта ошибка означает.
Execution failed for task ':excelSior:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/util/TimeUtils.class
В настоящее время я использую android-support-v4.jar
для моей библиотеки
dependencies {
compile project(':addThisSDK')
compile project(':centeredContentButton')
compile project(':googleplayservices_lib')
compile files('libs/adxtag2.4.6.jar')
compile files('libs/android-support-v4.jar')
compile files('libs/aws-android-sdk-1.7.1.1-debug.jar')
compile files('libs/commons-lang-2.6.jar')
compile files('libs/crittercism_v4_4_0_sdkonly.jar')
compile files('libs/dd-plist.jar')
compile files('libs/FiksuAndroidSDK_4.1.1.jar')
compile files('libs/iqengines-sdk-barcode.jar')
compile files('libs/irEventTracker-1.2.jar')
compile files('libs/jolt-core-0.0.7.jar')
compile files('libs/json-utils-0.0.7.jar')
compile files('libs/jsoup-1.7.2.jar')
compile files('libs/kooaba-api-v4-java.jar')
compile 'com.android.support:multidex:1.0.0'
}
ошибка не отображается во время синхронизации gradle. Просто когда я пытаюсь запустить приложение
в чем может быть проблема?
19 ответов:
вам нужно проверить, что вы вставили библиотеку v4 и скомпилировать библиотеку? Вы не должны повторять библиотеку в вашем приложении или вашей программе зависимости.
удалите библиотеку повторов, чтобы остался только один V4.
в вашем приложении dir добавьте эту команду:
android{ configurations { all*.exclude group: 'com.android.support', module: 'support-v4' all*.exclude group: 'com.android.support', module: 'support-annotations' } }
это работает для меня! Вы можете попробовать!
вы, вероятно, исправили это к настоящему времени, но просто так это не остается без ответа, Попробуйте добавить это в свой
build.gradle
:configurations { all*.exclude group: 'com.android.support', module: 'support-v4' }
Я также столкнулся с этой проблемой, когда повторно импортировал старый проект eclipse. Это произошло некоторые старые зависимости, как файл jar в проекте.
просто удалить
compile fileTree (реж.: 'libs', include:'*.jar')
в файле gradle
и добавить зависимость в файл Gradle.
Это работает для меня ..
в моем случае упомянутая ошибка "дублировать запись" возникла после установки
multiDexEnable=true
в построении.градля.для того, чтобы полностью устранить ошибку, прежде всего, посмотрите на настройка приложений с более чем 64K методов (особенно "настройка вашего приложения для Multidex с Gradle").
кроме того, поиск вхождений класса, который вызывает ошибку "дублировать запись" с помощью ctrl+n в Android Studio. Определите модуль и зависимость, которая содержит дублирование и исключить его из сборки, например:
compile ('org.roboguice:roboguice:2.0') { exclude module: 'support-v4' }
Я должен был попробовать несколько меток модуля, пока он не работал. Исключение "support-v4" решает проблемы, связанные с " java.утиль.застежка-молния.ZipException: дубликат записи: android / support / v4/*"
Я понимаю, что есть дубликаты ссылок на один и тот же API (вероятно, разные номера версий). Это должно быть достаточно легко отлаживать при построении из командной строки.
попробовать
./gradlew yourBuildVariantName --debug
из командной строки.оскорбительный элемент будет первым сбоем. Пример может выглядеть так:
14:32:29.171 [INFO] [org.gradle.api.Task] INPUT: /Users/mydir/Documents/androidApp/BaseApp/build/intermediates/exploded-aar/theOffendingAAR/libs/google-play-services.jar 14:32:29.171 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':BaseApp:packageAllyourBuildVariantNameClassesForMultiDex' 14:32:29.172 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :BaseApp:packageAllyourBuildVariantNameClassesForMultiDex FAILED'
В приведенном выше случае файл aar, который я включил в свой каталог libs (theOffendingAAR), включал jar сервисов Google Play (Да все это. да, я знаю.) файл в то время как мой файл сборки BaseApp использует службы определения местоположения:
compile 'com.google.android.gms:play-services-location:6.5.87'
вы можете безопасно удалить оскорбительный элемент из файла(ов) сборки, очистить и перестроить (при необходимости повторить).
Проверьте свои версии зависимостей, вы должны иметь совместимые версии, уделяющие особое внимание com.пакеты google, должны иметь такую же версию, как:
compile 'com.google.android.gms:play-services:8.3.0' compile 'com.google.android.gms:play-services-maps:8.3.0'
оба 8.3.0, если у вас есть другая версия компиляции будет выдавать это исключение.
Для Разоблачения.ошибка класса, т. е.
java.утиль.застежка-молния.ZipException: повторяющаяся запись: на COM/Гугл/дсын/Примечания/разоблачить.класс
использовать ниже код
configurations { all*.exclude module: 'gson' }
узнайте, что lib зависит от поддержки v4, и исключите его.
код
build.gradle
такой:androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.1') { // http://stackoverflow.com/a/30931887/5210 exclude group: 'com.android.support', module: 'appcompat' exclude group: 'com.android.support', module: 'support-v4' exclude module: 'recyclerview-v7' }
в моей ситуации lib 'espresso' имеет банку под названием support-v4, а в моем проекте "приложение" имеет ту же поддержку-v4, исключите поддержку-v4 при импорте эспрессо.
PS: кажется
compile project
Сexclude
Это потому, что вы добавили библиотеку и дали ее зависимость от модуля более одного раза.
в моем случае я добавил библиотеку как модуль и как зависимость gradle.
удаление одного источника добавления библиотеки (я удалил зависимость gradle) решило мою проблему.
для ошибки: выполнение не удалось для задачи': app: transformClassesWithJarMergingFordebug ' com.андроид.строить.прикладной программный интерфейс.преобразиться.TransformException java.утиль.застежка-молния.Zipexception дубликат записи com / google/gson/аннотации / Expose.класс
вот что я сделал:
1) Удалите gson-2.5.файл jar. 2 конфигурации) { все*.исключить модуль:' gson-2.5'}
Я столкнулся с этой проблемой, поскольку я вручную скопировал jar в libs, а также упомянул зависимость в файле gradle. Вы также проверяете в своей структуре проекта, копируется ли тот же файл jar в любую другую папку, например libs или в папку проекта.
у меня была такая же проблема после обновления Android SDK. Я смог запустить приложение в
buildToolsVersion '23.0.1'
, Я получил ту же ошибку, когда я изменилbuildToolsVersion '24.0.3'
я решил проблему, обновив свою версию java с 1.7 до 1.8 с помощью
compileSdkVersion 24
эта проблема стоила мне одного целого дня. Я, наконец, понизил версию библиотеки firebase-ui с 2.0.0 до 1.2.0 и добавил следующий код внутри сборки уровня проекта.файл gradle:
allprojects { repositories { jcenter() // Add the following code to your project level build.gradle maven { url 'https://maven.fabric.io/public' } } }
У меня также есть проблема из-за того, что у меня есть compile 'com.андроид.поддержка: appcompat-v7: 24.0.0-alpha1 'но я добавил recyclerview liberary compile' com.андроид.поддержка: recyclerview-v7: 24.0.2'..я изменил версию так же, как compat like (24.0.2 intead of 24.0.0).
Я получил ответ..может быть, это кому-то поможет.
в моем случае упомянутая ошибка "дублировать запись" возникла после settingmultiDexEnable=true в сборке.градля.
и точная ошибка, которую я получал, была ниже:
Error:Execution failed for task ':android:transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzqx.class
Итак, первое, что я ищу класс, который вызывает ошибку "дублировать запись" с помощью ctrl+n в Android Studio и ищет com/google/android/gms/internal/zzqx.класс, а затем он показывал 2 записи для класса gms с одной версией 8.4.0 и 1 с версией 11.6.0 .
исправить это я сделал как использовать 11.6.0 и это было исправлено пример
ранее
compile "com.google.android.gms:play-services-games:11.6.0" compile "com.google.android.gms:play-services-auth:8.4.0" compile "com.google.android.gms:play-services-ads:11.6.0"
после
compile "com.google.android.gms:play-services-games:11.6.0" compile "com.google.android.gms:play-services-auth:11.6.0" compile "com.google.android.gms:play-services-ads:11.6.0"
Восстановление Фиксированная .
в моем случае точно ошибка была ниже
': android: transformClassesWithJarMergingFordebug'.
com.андроид.строить.прикладной программный интерфейс.преобразиться.TransformException: java.утиль.застежка-молния.ZipException: дубликат записи: com / google/android/gms/internal / zzqx.класс
я использовал другую версию Google API, т. е. в одном модуле gradle file
if (!project.hasProperty('gms_library_version')) { ext.gms_library_version = '8.6.0' }
однако в других модулях версии 11.6.0 как ниже
compile "com.google.android.gms:play-services-ads:11.6.0" compile "com.google.android.gms:play-services-games:11.6.0" compile "com.google.android.gms:play-services-auth:11.6.0"
однако, чтобы найти это я сделал ctrl + n в Android studio и ввел имя класса zzqx.класс, а затем он отобразил 2 файла jar, которые были вытащены для этого класса, а затем я понял, что где-то я использую версию 8.6.0 . При изменении 8.6.0 на 11.6.0 и перестройке проекта проблема была исправлена .
надеюсь, что это помогает .
подробнее об этом здесь https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implementing-google-play-services-leaderboards-in-libgdx/