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

使用react-native-camera创建简易App时遭遇Android构建错误

解决React Native Camera集成的Android Dex合并冲突错误

这个错误是典型的依赖冲突问题——你的项目里有两个不同的依赖包包含了相同的com.facebook.infer.annotation.FalseOnNull类,导致Dex合并时出现冲突。下面是几种针对性的解决办法,按优先级推荐:

方案1:排除react-native-camera中的重复依赖

直接从react-native-camera的依赖中移除冲突的包是最根本的解决方式:

  1. 打开项目根目录下的android/app/build.gradle文件
  2. 找到dependencies代码块,修改react-native-camera的依赖声明,添加排除规则:
dependencies {
    // 其他依赖保持不变
    implementation(project(':react-native-camera')) {
        exclude group: 'com.facebook.infer.annotation'
    }
}

方案2:启用MultiDex(兜底方案)

如果排除依赖后问题仍存在,或者你的项目本身依赖较多,可以通过启用MultiDex来支持多个Dex文件:

  1. 在android/app/build.gradle的defaultConfig中添加配置:
defaultConfig {
    // 保留你已有的配置(比如applicationId、minSdkVersion等)
    multiDexEnabled true
}
  1. 同样在dependencies块中添加MultiDex依赖:
dependencies {
    // 其他依赖保持不变
    implementation 'com.android.support:multidex:1.0.3'
}
  1. 配置Application类:
    • 如果你的项目有自定义Application类,让它继承MultiDexApplication:
      public class MyApplication extends MultiDexApplication {
          // 你的现有代码
      }
      
    • 如果无法修改Application的继承关系,就在attachBaseContext方法中初始化MultiDex:
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
      

方案3:清理项目缓存后重新构建

有时候缓存文件会导致奇怪的依赖问题,执行以下命令彻底清理后重新构建:

# 进入android目录清理gradle缓存
cd android && gradlew clean
# 返回根目录清理node_modules和锁文件
cd .. && rm -rf node_modules package-lock.json
# 重新安装依赖
npm install
# 重新link依赖(如果需要)
react-native link react-native-camera
# 重新运行项目
react-native run-android

优先尝试方案1,因为它直接解决了重复类的根源问题;如果无效再尝试方案2或3。

内容的提问来源于stack exchange,提问作者Sayyed Alireza Rezaei Asl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:30:59