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

React Native Android构建报错:io.invertase.firebase.BuildConfig重复定义

解决React Native Android构建中io.invertase.firebase.BuildConfig重复定义问题

问题定位

这个报错是因为项目中io.invertase.firebase.BuildConfig类被多个依赖重复打包到DEX文件中,通常和@react-native-firebase系列依赖的版本冲突、重复引入有关。

解决方案

1. 统一Firebase依赖版本

  • 打开项目根目录的package.json,检查所有@react-native-firebase/*开头的依赖,确保它们的版本完全一致(比如@react-native-firebase/app和@react-native-firebase/auth必须用同一个版本)。
  • 版本不一致的话,将所有Firebase相关依赖更新到同一稳定版本,再执行:
    npm install
    # 或 yarn install
    

2. 排除重复的BuildConfig文件

在app/build.gradle的android块中添加打包配置,排除重复的BuildConfig相关文件:

android {
  // 其他已有配置...
  packagingOptions {
      exclude 'META-INF/io.invertase.firebase.BuildConfig'
      exclude 'META-INF/io.invertase.firebase_build_config.json'
  }
}

3. 彻底清理缓存后重建

执行以下命令清除所有缓存和冗余文件,再重新构建:

./gradlew clean
rm -rf node_modules
rm package-lock.json # 用yarn的话删yarn.lock
npm install
./gradlew assembleDebug

4. 移除重复的Firebase依赖

  • 检查项目中是否同时存在旧版react-native-firebase和新版@react-native-firebase/*依赖,旧版已被废弃,需要完全移除旧版,只保留新版模块化依赖。
  • 查看android/app/build.gradle的dependencies块,确保没有重复引入Firebase原生依赖。

5. 启用R8代码压缩(可选)

如果以上方法无效,可尝试启用R8压缩自动移除重复类:

buildTypes {
    debug {
        minifyEnabled true
        useProguard false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

内容的提问来源于stack exchange,提问作者Kaleem Mohammad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:40:56