当前位置: 首页 > 面试题库 >

在不更改代码的情况下,有什么可以破坏android构建的?

娄建义
2023-03-14
问题内容

我正在react-native使用使用react-native-
firebase
的应用程序。我已经在travis上建立了CI构建,目的是拥有可复制的构建,并且突然停止了工作,如下所示:

  • 之前:4天前,构建成功
  • after:今天,完全相同的构建被破坏,失败并显示以下消息:

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来解决此问题:依赖项{Implementation(“
com.google.android.gms:play-services- base:17.0.0“)}

但遵循该建议只会导致其他(不同)错误。


问题答案:

根本原因是与向Androidx的迁移有关,而Google Play服务已更新为androidX

如果您使用real-native-info,请升级。 2.1.2* 将解决您的问题 *

看到这里申请链接

注意:升级com.google.android.gms到17.0.0会引起很多问题。



 类似资料:
  • 我最近通过从源代码编译在CentOS机器上安装了Python 2.7.3。Python 2.7.3安装在/opt/python2.7上,当我安装它时,我只需更改/usr/bin/Python以指向新版本。这显然是错误的,因为当我这样做的时候,它打破了百胜。我会得到以下内容。 我更改了/usr/bin/python以指向python 2.6.6,但现在2.6.6是python的默认版本。你知道怎么解

  • 问题内容: 在以下示例代码中,我将事件处理程序附加到包含文本“foo”的范围。该处理程序是一个匿名函数,会弹出一个。 但是,如果我将其分配给父节点的,则此事件处理程序将被销毁-单击“ foo”将无法弹出警报框。 这个可以解决吗? 问题答案: 不幸的是,即使您尝试附加,分配给也会导致所有子元素的破坏。如果要保留子节点(及其事件处理程序),则需要使用DOM函数: 编辑: 鲍勃的解决方案,从评论。发表您

  • 当我这样做的时候,变量'amount'不是正确的答案,因为a现在是,用pylint的话说是'tuple',所以amount将从返回a+4,变为返回(a,a+5)+4 我如何将'a+5'添加到foo中,同时仍然允许amount是单个标量值,而不是元组?

  • 为了记录请求和响应,我添加了一个LoggingRequestInterceptor,它实现了ClientHTTPPrequestinterceptor。。。 响应主体是一个流,如果我将其读取到我的拦截器中,TestRestTemplate将无法将其反序列化到我的对象模型中。换句话说,当我调用testRestTemplate时。获取…我将始终获取空对象(即使我看到对象我的响应)。 要解决RestTe

  • 假设我有两个类叫做ad。 它们都实现了。 对于只有两种方法,分别称为和。 一切都很好。但是,虽然这似乎很好地利用了s,但我认为如果我需要向这个添加方法,实现就会中断,即我需要去实现这些类中的新方法,这打破了“封闭-开放原则”。 所以我想,除了,如果将来需要添加新方法,我还会使用类。 例如,。 这听起来是个好计划(如果不是,请纠正我)。 但问题是,如果这些类已经有其他类了怎么办?在这种情况下,我不能