我正在使用react-native-firebase的react-native
应用程序上工作。我已经在travis上设置了CI构建,目的是具有可复制的构建,并且突然停止了工作,如以下所述:
Android依赖项'com.google.android.gms:play-services-base'对于编译(16.0.1)和运行时(17.0.0)类路径具有不同的版本。您应该通过DependencyResolution手动设置相同的版本
我唯一合理的猜测是某些依赖关系发生了变化,但我不了解android的构建是否足够好,无法弄清发生了什么或为什么。
很明显,我如何防止将来发生此类意外? (在我看来,此构建应该是完全可重复的)
作为旁注,当构建失败时,它还会显示一些警告,例如:
警告:与项目“:app”中的依赖项“ com.google.android.gms:play-services-base”冲突。运行时类路径(17.0.0)和编译类路径(16.0.1)的已解决版本不同。这可能导致运行时崩溃。要解决此问题,请遵循https://developer.android.com/studio/build/gradle-tips#configure-project-wide-properties的建议。另外,您可以尝试通过将以下代码段添加到/home/travis/build/mapswipe/mapswipe/android/app/build.gradle来解决此问题: 依赖项{ 实施(“ com.google.android.gms:play-services-base:17.0.0”) }
但是遵循该建议只会导致更多(不同)错误。
答案 0 :(得分:2)
根本原因是与向Androidx的迁移有关,而Google Play服务已更新为androidX
如果您使用的是real-native-info
,请升级。它将通过 2.1.2
注意:将
com.google.android.gms
升级到17.0.0会导致很多 问题。
答案 1 :(得分:0)
作为参考,this comment on github提供了我的问题的答案:
一个依赖项(在我的情况下为react-native-device-info
)使用的是其中一个依赖项的最新版本,而不是固定/固定版本。谷歌服务的新版本发布后,它导致该构建为device-info
引入了新版本,从而导致与其他依赖项的冲突,这些依赖项正确地固定了所需的版本。