我在项目中使用了许多与Firebase相关的库。同步后,我面临以下错误。
Android依赖项“ com.google.firebase:firebase-iid”具有不同的 编译(17.0.3)和运行时(17.1.1)类路径的版本。您 应该通过DependencyResolution手动设置相同的版本
问题是我甚至没有在依赖项中声明firebase-iid
,而这是其他firebase库的传递性依赖项。
运行依赖表后,我可以找到以下内容。
17.0.3版来自 com.google.android.gms:play-services-measurement-api:16.4.0 而17.1.1来自 com.google.firebase:firebase-messaging:17.5.0
理想情况下,它应该在内部解决它,并且应该自动选择更高的版本。但这没有发生。
您知道为什么会发生这种情况以及如何解决此问题吗?
答案 0 :(得分:0)
com.google.android.gms:play-services-measurement-api:
没有更新的gradle
最新版本是 2019年3月,版本:16.4.0 。
因此,您的实现对于此Measurement-api不正确。
使用:
com.google.android.gms:play-services-measurement-api:16.4.0
com.google.firebase:firebase-messaging:17.5.0
引用此链接:https://mvnrepository.com/artifact/com.google.android.gms/play-services-measurement-api/16.4.0
https://mvnrepository.com/artifact/com.google.firebase/firebase-messaging
答案 1 :(得分:0)
是的,没错,gradle应该会自动解析为单个版本的库,但是正如我所经历的有时,它确实会,有时却不会。但是当它不能解析为同一库的单个版本时,我们可以强制其使用单个特定版本,如下所述。
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-measurement-api:17.1.1"
force "com.google.firebase:firebase-messaging:17.5.0"
}
}
dependencies {
// ... all dependencies here...
}
尝试使用上述代码强制gradle使用单个版本。可能会对您有帮助。