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

Expo 52升级后Android EAS构建失败:命名空间与清单合并错误

解决方案:Expo 52 Android构建清单合并冲突问题

问题核心

构建失败源于项目同时存在AndroidX与旧版com.android.support库的冲突,导致Manifest合并时出现android:appComponentFactory属性重复、androidx.versionedparcelable命名空间重复的问题。从依赖列表判断,react-native-iap@12.15.7是引入旧Support库的主要来源,该版本未完全适配AndroidX。


步骤1:临时修复Manifest合并错误

按错误提示添加tools:replace属性,先解决直接的合并冲突:

  1. 生成Android原生文件:
    expo prebuild --platform android
    
  2. 打开android/app/src/main/AndroidManifest.xml,修改如下:
    <!-- 先给根manifest标签添加tools命名空间 -->
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools">
    
    <!-- 在application标签中添加替换属性 -->
    <application
        ...
        tools:replace="android:appComponentFactory">
    

步骤2:强制所有依赖使用AndroidX

通过Gradle配置彻底替换旧Support库:

  1. 打开android/build.gradle,在allprojects区块内添加:
    configurations.all {
        resolutionStrategy {
            // 强制使用AndroidX版本,排除所有com.android.support依赖
            force 'androidx.core:core:1.13.1'
            force 'androidx.versionedparcelable:versionedparcelable:1.1.1'
            exclude group: 'com.android.support'
        }
    }
    
  2. 确认android/gradle.properties已开启AndroidX:
    android.useAndroidX=true
    android.enableJetifier=true
    

步骤3:替换冲突依赖

react-native-iap@12.15.7是冲突根源,推荐二选一处理:

  • 方案A:升级到最新版react-native-iap:
    npm install react-native-iap@latest
    
    v13+版本已全面适配AndroidX,移除了旧Support库依赖。
  • 方案B:改用Expo官方内购库:
    若项目为Expo管理模式,优先使用官方库以适配生态:
    expo install expo-in-app-purchases
    

步骤4:清理缓存并重新构建

完成修改后清理缓存,避免残留问题:

# 清理npm缓存
npm cache clean --force
# 清理Expo缓存
expo r -c
# 清理Android构建缓存
cd android && ./gradlew clean && cd ..
# 重新执行构建
eas build --platform android

内容的提问来源于stack exchange,提问作者שלו כהן

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:49:56