【问题标题】:Android Proguard build failed: Duplicated zip entryAndroid Proguard 构建失败:重复的 zip 条目
【发布时间】:2017-01-16 11:26:25
【问题描述】:

我在组装发布时遇到此错误:

警告:处理任务时出现异常 java.io.IOException:无法写入 [/Users/tuanchauict/pw/Android/xrmovies/app/build/intermediates/transforms/proguard/prod/release/jars/3/1f /main.jar](无法读取 [/Users/tuanchauict/pw/Android/xrmovies/app/build/intermediates/classes/prod/release(;;;;;;**.class)](重复的 zip 条目[android/support/v7/a/a$a.class== android/support/v7/appcompat/R$attr.class])) :app:transformClassesAndResourcesWithProguardForProdRelease 失败

这是堆栈跟踪:

Caused by: java.io.IOException: Can't write [/Users/tuanchauict/pw/Android/xrmovies/app/build/intermediates/transforms/proguard/prod/release/jars/3/1f/main.jar] (Can't read [/Users/tuanchauict/pw/Android/xrmovies/app/build/intermediates/classes/prod/release(;;;;;;**.class)] (Duplicate zip entry [android/support/v7/a/a$a.class == android/support/v7/appcompat/R$attr.class]))
        at proguard.OutputWriter.writeOutput(OutputWriter.java:187)
        at proguard.OutputWriter.execute(OutputWriter.java:79)
        at proguard.ProGuard.writeOutput(ProGuard.java:427)
        at proguard.ProGuard.execute(ProGuard.java:175)
        at com.android.build.gradle.internal.transforms.BaseProguardAction.runProguard(BaseProguardAction.java:54)
        at com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.java:254)
        at com.android.build.gradle.internal.transforms.ProGuardTransform.access$000(ProGuardTransform.java:63)
        at com.android.build.gradle.internal.transforms.ProGuardTransform$1.run(ProGuardTransform.java:173)
        at com.android.builder.tasks.Job.runTask(Job.java:49)
        at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41)
        at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:223)
Caused by: java.io.IOException: Can't read [/Users/tuanchauict/pw/Android/xrmovies/app/build/intermediates/classes/prod/release(;;;;;;**.class)] (Duplicate zip entry [android/support/v7/a/a$a.class == android/support/v7/appcompat/R$attr.class])
        at proguard.InputReader.readInput(InputReader.java:188)
        at proguard.InputReader.readInput(InputReader.java:158)
        at proguard.OutputWriter.writeOutput(OutputWriter.java:176)
        ... 10 more
Caused by: java.io.IOException: Duplicate zip entry [android/support/v7/a/a$a.class == android/support/v7/appcompat/R$attr.class]
        at proguard.io.JarWriter.getOutputStream(JarWriter.java:138)
        at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:105)
        at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:105)
        at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:92)
        at proguard.io.ClassRewriter.read(ClassRewriter.java:68)
        at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
        at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
        at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
        at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
        at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
        at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
        at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
        at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
        at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
        at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:74)
        at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:74)
        at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:74)
        at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:74)
        at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:74)
        at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
        at proguard.InputReader.readInput(InputReader.java:184)
        ... 12 more


BUILD FAILED

我已经搜索过,但没有解决这个案例。

我的依赖:

compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:support-v4:25.1.0'
compile 'com.android.support:recyclerview-v7:25.1.0'
compile 'com.android.support:cardview-v7:25.1.0'
compile 'com.android.support:design:25.1.0'

compile 'com.google.android.gms:play-services-ads:10.0.1'
compile 'com.google.android.gms:play-services-analytics:10.0.1'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-crash:10.0.1'

【问题讨论】:

  • 没有proguard一切顺利?
  • 是的,我可以在调试模式下运行
  • 你是如何删除它的?为未来的用户发布您的解决方案:)
  • 实际上,我将其代码抓取到我的应用程序中,而不是使用 gradle 依赖项。

标签: android proguard android-proguard


【解决方案1】:

(代表 OP 发布).

我已经弄清楚问题出在哪里了。我使用了一个第三方库,它以某种方式包含了支持库中的 R 类。删除它,构建工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多