You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Android构建失败::app:processDebugManifest任务异常求助

解决React Native Android清单合并冲突(appComponentFactory)

我之前维护旧版本React Native项目时也碰到过一模一样的问题,核心原因就是项目里同时混入了Android Support库和AndroidX库,导致清单合并时appComponentFactory属性冲突。你试过的方法方向是对的,但可能有些细节没做到位,或者依赖本身存在问题,给你几个可行的解决步骤:

1. 确保gradle配置完全生效

先检查android/gradle.properties文件,确认这两行配置没有被注释,且拼写完全正确:

android.useAndroidX=true
android.enableJetifier=true

Jetifier的作用是自动把所有Support库依赖转换为AndroidX,但它对一些非常老旧的第三方库支持有限,这时候就需要手动干预。

2. 升级冲突的第三方依赖

你的依赖里有几个明显基于Support库的旧版本,它们是冲突的根源:

  • native-base@2.12.1:这个版本完全基于Support库,建议升级到2.13.14(这是v2系列最后一个支持AndroidX的版本,适配RN0.59),如果能接受较大改动也可以直接升级到v3+(但v3需要RN0.60+)
  • lottie-react-native@2.6.1:升级到3.0.0+版本,已经全面支持AndroidX
  • react-native-admob@2.0.0-beta.5:这个beta版本不支持AndroidX,建议替换为维护中的react-native-admob-next或其他兼容AndroidX的AdMob库版本

3. 手动排除Support库依赖

如果暂时不想升级依赖,可以在android/app/build.gradle的dependencies块中,把冲突库的Support依赖手动排除:

dependencies {
    // 保留你的其他依赖,添加以下排除规则
    implementation(project(':native-base')) {
        exclude group: 'com.android.support'
    }
    implementation(project(':react-native-admob')) {
        exclude group: 'com.android.support'
    }
    implementation(project(':lottie-react-native')) {
        exclude group: 'com.android.support'
    }
}

4. 修正AndroidManifest.xml的配置

很多人只加了tools:replace,但忘了添加tools命名空间,导致属性不生效。确保你的Manifest根元素和application标签是这样的:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" <!-- 必须添加这个命名空间 -->
    package="com.ruci"> <!-- 替换成你的项目包名 -->

    <application
        android:name=".MainApplication"
        android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:allowBackup="false"
        android:theme="@style/AppTheme"
        tools:replace="android:appComponentFactory" <!-- 覆盖冲突属性 -->
        android:appComponentFactory="androidx.core.app.CoreComponentFactory"> <!-- 手动指定AndroidX的Factory -->
        <!-- 其他组件配置 -->
    </application>
</manifest>

5. 清理缓存重新构建

最后一定要清理项目缓存,避免旧依赖残留:

# 清理Android项目缓存
cd android && ./gradlew clean

# 清理npm/yarn缓存
cd .. && npm cache clean --force # 用yarn的话执行 yarn cache clean

# 重新安装依赖
npm install

# 重新构建项目
react-native run-android

按照这个流程走下来,应该能解决清单合并的冲突问题。

内容的提问来源于stack exchange,提问作者Ramanan R R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:35:14