当前,我们有很多Firebase版本。
firebase_core_version = '16.0.6'
firebase_perf_version = '16.2.2'
firebase_messaging_version = '17.3.4'
...
implementation "com.google.firebase:firebase-core:$firebase_core_version"
implementation "com.google.firebase:firebase-perf:$firebase_perf_version"
implementation "com.google.firebase:firebase-messaging:$firebase_messaging_version"
...
但是它们每个都有不同的版本号,有时它们会因传递包含而冲突或解析为意外的版本。或其他模块为同一个库声明了不同的版本...这很浪费我的时间。
有什么解决办法吗?
答案 0 :(得分:1)
Gradle具有从5.0开始可用的“ BoM”功能。它使您摆脱了地狱版本。
implementation platform('com.google.firebase:firebase-bom:20.0.1')
implementation 'com.google.firebase:firebase-perf'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-appindexing'
implementation 'com.google.firebase:firebase-config'
您可能会注意到,只有新导入的firebase-bom
才有版本,而其他任何库都没有版本。
这是因为BoM依赖项在其中包含了所有Firebase版本(当然它们是兼容的!)。
因此,您的模块始终导入firebase-bom
,然后版本冲突就会消失。
firebase-bom
目前处于实验阶段,但对我有用。
https://firebase.google.com/docs/android/setup#firebase-bom
我希望androidx(jetpack)也有这个!
也有okhttp-bom可用。 https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp-bom