【发布时间】:2019-10-31 20:23:48
【问题描述】:
正在处理 React Native 项目,但突然停止工作并开始出现错误:
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add ‘tools:replace=“android:appComponentFactory”’ to <application> element at AndroidManifest.xml:7:5-117 to override.
我知道 Google 在 28 岁之后已经完成了 Support Library 类,并且我知道如何将整个项目从 Support Library 类迁移到 AndroidX 类。
我的问题是:
是否有任何可能的方法来继续使用支持库类而不是转移到 AndroidX 类?
如何解决此问题?
【问题讨论】:
-
面对同样的问题,谷歌的迁移指南也对我不起作用。你能以某种方式解决编译错误吗?
-
是的,我刚刚在我的代码中找到了罪魁祸首 3rd 方库,它使用了 Androidx 支持。如果我删除它。我的代码开始工作。我认为@pramod_m ans 在某种程度上是正确的,但这种行为并不好。我花了很多时间来调试这个问题。
-
您是如何发现哪个第三方库正在使用 Androidx 的?目前处于同样的情况。
-
@ChristophGöttert 我和你有同样的问题,但是有一种更简单的方法来限制 play-services-gcm 的版本,添加
googlePlayServicesVersion = "16.1.0"或任何你正在使用的版本到你的 build.gradle .无需 fork 库! -
我遇到了同样的问题并用这个解决了它:stackoverflow.com/a/56648987/8306924
标签: android react-native android-support-library androidx