我正在尝试更新我的 Android 项目之一的依赖项,但收到了这个奇怪的错误。
罪魁祸首是 AdMob 的这一行(我之前使用的是 20.6.0):
implementation "com.google.android.gms:play-services-ads:21.0.0"
Run Code Online (Sandbox Code Playgroud)
我收到一堆错误:
在模块 jetified-play-services-measurement-base-20.1.2-runtime 中发现重复的类 com.google.android.gms.internal.measurement.zzhx (com.google.android.gms:play-services-measurement-base: 20.1.2) 和 jetified-play-services-measurement-impl-20.1.1-runtime (com.google.android.gms:play-services-measurement-impl:20.1.1)
在模块 jetified-play-services-measurement-base-20.1.2-runtime 中发现重复的类 com.google.android.gms.internal.measurement.zzna (com.google.android.gms:play-services-measurement-base: 20.1.2) 和 jetified-play-services-measurement-impl-20.1.1-runtime (com.google.android.gms:play-services-measurement-impl:20.1.1)
在模块 jetified-play-services-measurement-base-20.1.2-runtime 中发现重复的类 com.google.android.gms.internal.measurement.zznb (com.google.android.gms:play-services-measurement-base: 20.1.2) 和 jetified-play-services-measurement-impl-20.1.1-runtime (com.google.android.gms:play-services-measurement-impl:20.1.1)
在模块 jetified-play-services-measurement-base-20.1.2-runtime 中发现重复的类 com.google.android.gms.internal.measurement.zznc (com.google.android.gms:play-services-measurement-base: 20.1.2) 和 jetified-play-services-measurement-impl-20.1.1-runtime (com.google.android.gms:play-services-measurement-impl:20.1.1)
...
以下是我在项目中使用的所有依赖项build.gradle (:app):
dependencies {
implementation "androidx.recyclerview:recyclerview:1.2.1"
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
// Firebase & Crashlytics
implementation platform('com.google.firebase:firebase-bom:29.2.1')
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation 'com.google.firebase:firebase-crashlytics-ktx'
//Navigation
implementation "androidx.navigation:navigation-fragment-ktx:2.4.2"
implementation "androidx.navigation:navigation-ui-ktx:2.4.2"
// AdMob
implementation "com.google.android.gms:play-services-ads:21.0.0"
// Style
implementation 'com.intuit.sdp:sdp-android:1.0.5'
// Play Core
implementation 'com.google.android.play:core:1.10.3'
implementation 'com.google.android.play:core-ktx:1.8.1'
// Billing
implementation "com.android.billingclient:billing-ktx:5.0.0"
}
Run Code Online (Sandbox Code Playgroud)
以及以下依赖项build.gradle (My App):
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:7.1.3"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21"
classpath "com.google.gms:google-services:4.3.10"
classpath "com.google.firebase:firebase-crashlytics-gradle:2.8.1"
}
}
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个错误?如果我恢复play-services-ads到 20.6.0,我不会收到任何错误。
感谢您的帮助
Vah*_*han 112
你还需要更新
implementation platform('com.google.firebase:firebase-bom:29.2.1'),到
implementation platform('com.google.firebase:firebase-bom:30.1.0')
Run Code Online (Sandbox Code Playgroud)
Ten*_* Yu 17
如错误消息中所述,您需要解决/删除一些重复的类(很可能也具有不兼容的版本设置)。对于我的情况,我需要升级我的 Firebase Analytics。这就是我追踪问题的方法:
我跑了
./gradlew -q app:dependencies
Run Code Online (Sandbox Code Playgroud)
通过搜索发现以下片段play-services-measurement:
| | | +--- com.google.android.gms:play-services-ads:21.2.0
| | | | +--- androidx.browser:browser:1.4.0
| | | | | +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 (*)
| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*)
| | | | | +--- androidx.core:core:1.1.0 -> 1.8.0 (*)
| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
| | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
| | | | +--- androidx.core:core:1.0.0 -> 1.8.0 (*)
| | | | +--- com.google.android.gms:play-services-ads-base:21.2.0
| | | | | \--- com.google.android.gms:play-services-basement:18.0.0 (*)
| | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*)
| | | | +--- com.google.android.gms:play-services-ads-lite:21.2.0
| | | | | +--- androidx.work:work-runtime:2.7.0 -> 2.7.1
| | | | | | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.1.0
| | | | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.5.1 (*)
| | | | | | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*)
| | | | | | +--- androidx.core:core:1.6.0 -> 1.8.0 (*)
| | | | | | +--- androidx.room:room-runtime:2.2.5 -> 2.4.2 (*)
| | | | | | +--- androidx.sqlite:sqlite:2.1.0 -> 2.2.0 (*)
| | | | | | +--- androidx.sqlite:sqlite-framework:2.1.0 -> 2.2.0 (*)
| | | | | | +--- androidx.core:core:1.1.0 -> 1.8.0 (*)
| | | | | | \--- androidx.lifecycle:lifecycle-service:2.1.0 -> 2.4.0 (*)
| | | | | +--- com.google.android.gms:play-services-ads-base:21.2.0 (*)
| | | | | +--- com.google.android.gms:play-services-basement:18.0.0 (*)
| | | | | +--- com.google.android.gms:play-services-measurement-sdk-api:20.1.2 (*)
Run Code Online (Sandbox Code Playgroud)
| +--- com.google.firebase:firebase-analytics:18.0.3
| | +--- com.google.android.gms:play-services-measurement:18.0.3
| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 -> 18.0.0 (*)
| | | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
| | | +--- com.google.android.gms:play-services-measurement-base:18.0.3 -> 20.1.2 (*)
| | | +--- com.google.android.gms:play-services-measurement-impl:18.0.3
| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
| | | | +--- androidx.core:core:1.0.0 -> 1.8.0 (*)
| | | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 -> 18.0.0 (*)
| | | | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
| | | | +--- com.google.android.gms:play-services-measurement-base:18.0.3 -> 20.1.2 (*)
| | | | \--- com.google.android.gms:play-services-stats:17.0.0
| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
| | | | \--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*)
| | +--- com.google.android.gms:play-services-measurement-api:18.0.3
| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 -> 18.0.0 (*)
| | | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
| | | +--- com.google.android.gms:play-services-measurement-base:18.0.3 -> 20.1.2 (*)
| | | +--- com.google.android.gms:play-services-measurement-sdk-api:18.0.3 -> 20.1.2 (*)
| | | +--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.1 (*)
| | | +--- com.google.firebase:firebase-common:19.3.0 -> 20.0.0 (*)
| | | +--- com.google.firebase:firebase-components:16.0.0 -> 17.0.0 (*)
| | | +--- com.google.firebase:firebase-installations:16.3.2 -> 17.0.0 (*)
| | | +--- com.google.firebase:firebase-installations-interop:16.0.0 -> 17.0.0 (*)
| | | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*)
| | \--- com.google.android.gms:play-services-measurement-sdk:18.0.3
Run Code Online (Sandbox Code Playgroud)
显然,问题出在我的项目的这两个直接依赖项中com.google.android.gms:play-services-ads:21.2.0,并且com.google.firebase:firebase-analytics:18.0.3都指定了不同的版本play-services-measurement
如果我们进一步查看 pom 文件play-services-measurement:18.0.3:
<dependency>
<groupId>com.google.android.gms</groupId>
<artifactId>play-services-measurement-base</artifactId>
<version>[18.0.3]</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>com.google.android.gms</groupId>
<artifactId>play-services-measurement-impl</artifactId>
<version>[18.0.3]</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
它严格要求18.0.3 base,impl这使得Gradle无法自行解决该问题。
我选择将Firebase Analytics升级到20.1.2,问题已解决。
| 归档时间: |
|
| 查看次数: |
28207 次 |
| 最近记录: |