尝试构建 React Native 0.59 应用程序时与 AndroidX 相关的 AndroidManifest 错误

标签 android react-native build androidx

在升级到 RN 0.59.9 后,我正在尝试构建 React Native Android 应用程序,但我收到与 AndroidX 相关的错误。

我尝试了很多方法,包括删除大多数 native 包、更改 AndroidManifest.xml 以及互联网上提到的各种其他解决方案,但似乎没有任何效果。

我的错误是:

> Task :app:processReleaseManifest FAILED
....\android\app\src\main\AndroidManifest.xml:22:18-91 Error:
        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:35:2-108:16 to override.

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.


FAILURE: Build failed with an exception.

据我了解,这意味着其中一个软件包使用 AndroidX 但不是主应用程序,但据我所知,我的应用程序中没有任何内容使用 AndroidX,并且我确保升级到 RN 0.59,而不是 0.60。我什至尝试过 grep“androidx”并删除所有可能提到它的包。

我还尝试将“android.useAndroidX=true/android.enableJetifier=true”添加到 gradle.properties 以查看会发生什么,但正如预期的那样,许多模块没有构建,因为它们尚未升级到 AndroidX。

知道如何修复这个错误吗?

最佳答案

这很可能是由于 Android 发布了所有 AndroidX 库,并且泄漏了“+”式 gradle 依赖项。

您可以 ./gradlew :app:dependencies|grep androidx 找到问题库,然后使用 gradle resolutionStrategies 或 android/build.gradle ext{} versioning 来固定 Google 库依赖项,或者您可以将您的 react-native 项目转换为 androidx 并通过 npm i jetifier && npx jetify 使用 jetifier 工具,以便非 androidx react-native 库工作。

随着 react-native 生态系统过渡到 AndroidX,两者都应该产生一个有效的构建

关于尝试构建 React Native 0.59 应用程序时与 AndroidX 相关的 AndroidManifest 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56653182/

相关文章:

maven - 如何从 go lang 代码运行 maven 构建

Android Studio - 错误 :Program type already present

java - Android:使用 Intent 或 Intent 过滤器启动 Activity

android - 在移动网站中创建将打开二维码扫描仪的链接

android - 如何在 TextView 中返回默认字体

react-native - 上传至 EAS 版本 : Error: Request failed: 403 (Forbidden)

django - 通过 React-Native 从 Django OauthToolkit 获取请求 token

android - 为什么我的 ServiceConnection 方法从未执行过?

ios - React Native ScrollView双向滚动

android - 是否可以仅在构建时在Gradle中复制/替换文件?