java - 什么可以在不更改代码的情况下破坏 android 构建?
问题描述
我正在开发一个react-native
使用react-native-firebase的应用程序。我已经在 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 来解决问题: dependencies { implementation("com.google.android.gms:play-services-基数:17.0.0") }
但遵循该建议只会导致更多(不同)错误。
解决方案
根本原因是相关迁移到Androidx,google play服务更新到androidX
如果您正在使用real-native-info
,请升级。它将用2.1.2解决您的问题
注意:升级
com.google.android.gms
到 17.0.0 会导致很多问题。
推荐阅读
- xamarin - 无法通过 Visual Studio 上传 Xamarin iOS 应用程序以测试飞行
- shell - export LS_COLORS :对以 README* 开头的每个文件应用规则
- c# - 使用 Windows 身份验证时,ASP.NET 强制文件访问作为池标识
- android - 谷歌Pixel相机不如主相机应用
- mongodb - 如何创建具有多个条件的动态 mongodb 查询
- karate - 空手道:替换多个键值
- mapbox - 路径中的奇怪故障
- rabbitmq - Rabbitmq 未正确加入集群
- flutter - 如何访问该类的任何属性?
- vue.js - Vue CLI 生成的 Vue 3 应用程序中的 @Options 关键字