【问题标题】:Duplicate jar entry when using firebase-analytics:16.0.5使用 firebase-analytics:16.0.5 时重复的 jar 条目
【发布时间】:2018-11-07 05:12:36
【问题描述】:

在广告 17.1.1 (developers.google.com/android/guides/releases) 中正式修复


将 firebase-analytics 的版本从 16.0.4 更新到 16.0.5 后 项目构建发布aab/apk失败,报错Duplicate jar entry [com/google/android/gms/internal/measurement/zzdz.class]

Android Studio 3.2.1

应用的 build.gradle

    implementation 'com.google.firebase:firebase-core:16.0.5'
    implementation 'com.google.firebase:firebase-analytics:16.0.5'
    implementation 'com.google.firebase:firebase-ads:17.1.0'
    implementation 'com.google.firebase:firebase-perf:16.2.0'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.6'

项目构建.gradle

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.2.0' // google-services plugin
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
        classpath 'io.fabric.tools:gradle:1.26.1'
    }

错误

Caused by: java.io.IOException: Can't write [MASKED\app\build\intermediates\transforms\proguard\release\0.jar] (Can't read [MASKED\app\build\intermediates\transforms\FirebasePerformancePlugin\release\21(;;;;;;;**.class)] (Can't read [com] (Can't read [google] (Can't read [android] (Can't read [gms] (Can't read [internal] (Can't read [measurement] (Can't read [zzdz.class] (Duplicate jar entry [com/google/android/gms/internal/measurement/zzdz.class])))))))))    at proguard.OutputWriter.writeOutput(OutputWriter.java:202)     at proguard.OutputWriter.execute(OutputWriter.java:89)  at proguard.ProGuard.writeOutput(ProGuard.java:515)     at proguard.ProGuard.execute(ProGuard.java:210)     at com.android.build.gradle.internal.transforms.BaseProguardAction.runProguard(BaseProguardAction.java:64)  at com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.java:262)    at com.android.build.gradle.internal.transforms.ProGuardTransform.access$000(ProGuardTransform.java:65)     at com.android.build.gradle.internal.transforms.ProGuardTransform$1.run(ProGuardTransform.java:176)     at com.android.builder.tasks.Job.runTask(Job.java:47)   at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41)   at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:282)  ... 1 more

在他们发布修复之前有什么解决方法吗?

【问题讨论】:

  • 在 Android Studio 3.4 Canary 3 和 classpath 'com.android.tools.build:gradle:3.4.0-alpha03'classpath 'com.google.gms:google-services:4.2.0'implementation 'com.google.firebase:firebase-core:16.0.5'implementation 'com.google.firebase:firebase-ads:17.1.0' 上遇到同样的问题。使用核心 16.0.4 一切都很好。
  • 在广告 17.1.1 (developers.google.com/android/guides/releases) 中正式修复

标签: android firebase firebase-analytics


【解决方案1】:

使用gradlew :app:dependencies,发现部分依赖没有使用最新版本。

手动添加如下依赖覆盖加载的版本可以解决问题。

implementation 'com.google.android.gms:play-services-measurement-sdk-api:16.0.3'
implementation 'com.google.android.gms:play-services-basement:16.1.0'

【讨论】:

  • 我只需要这行implementation 'com.google.android.gms:play-services-measurement-sdk-api:16.0.3'
【解决方案2】:

一旦我遇到此问题,请尝试将 google play 服务版本更新为最新版本,并更新您正在使用的所有 firebase 库。 从 Android Studio 3.2.1 开始,以下是最新的:

 dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.0.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

【讨论】:

  • 所有依赖都在最新版本 classpath 'com.android.tools.build:gradle:3.2.1' classpath 'com.google.gms:google-services:4.2.0' classpath 'com .google.firebase:firebase-plugins:1.1.5' 类路径 'io.fabric.tools:gradle:1.26.1'
  • 那么firebase库也需要是最新的,所有的
【解决方案3】:

这是一个简单的解决方案,

Google 已修复此问题,您只需将 ads gradle 版本更新到 17.1.1,这将解决 firebase-core:16.0.5 的问题,添加以下行即可解决问题

implementation 'com.google.firebase:firebase-ads:17.1.1'
implementation 'com.google.android.gms:play-services-ads:17.1.1'
implementation 'com.google.firebase:firebase-core:16.0.5'

【讨论】:

    猜你喜欢
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2017-04-04
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多