google和maven存储库之间的play-services-measurement-base版本不匹配

时间:2018-08-24 11:59:07

标签: android gradle google-play-services bintray jcenter

我正在尝试构建一个我们同时使用Google Analytics(分析)和Firebase的android react本地应用,并且在编译时遇到了此问题:

The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[16.0.0,16.0.0]], but resolves to 16.0.2. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.

对gradle扫描进行分析(参见下图)后,我们发现我们有一个模块需要com.google.firebase:firebase-core,而另一个模块需要com.google.android.gms:play-services-analytics

这两个模块都需要play-services-measurement-base,但是由于这些模块是在不同的存储库中下载的(一个是google,另一个是maven)。我们注意到,16.0.2版本仅在Google存储库中发布,而没有在maven的版本中发布(请参见下面的图像)。

https://mvnrepository.com/artifact/com.google.android.gms/play-services-measurement-base

https://dl.google.com/dl/android/maven2/index.html

我们尝试禁用依赖检查,但没有运气。如果有人有解决此问题的方法,或者可以就此问题与Google / Maven联系。

  • 版本:
    • 等级:4.4
    • Gradle Android工具:3.1.3
    • Gradle Google Services插件:4.0.1
    • Android SDK版本:27
    • Buildscript存储库:google(), jcenter()

临时解决方案:像这样从Firebase中明确排除play-services-measurement-base implementation("com.google.firebase:firebase-core:16.0.1") { exclude group: 'com.google.android.gms', module: 'play-services-measurement-base' } 或检查接受的答案。

1 个答案:

答案 0 :(得分:0)

您可以将分辨率强制为特定的版本号:

configurations.all() {
    resolutionStrategy.force "com.google.android.gms:play-services-measurement-base:16.0.2"
}

或冲突模块exclude的{​​{1}}版本16.0.0