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

React Native安卓模拟器运行失败:mergeExtDexDebug报错与JVM堆溢出

解决React Native安卓构建的JVM堆内存不足与Firebase版本不匹配问题

你遇到了两个影响安卓构建的核心问题:JVM堆内存耗尽导致的构建失败,以及React Native Firebase的版本依赖冲突警告。我来给你逐个拆解解决方案:

一、修复JVM堆内存耗尽问题(Expiring Daemon/OutOfMemoryError)

这个问题是因为Gradle守护进程的默认堆内存不足以处理你的应用依赖(尤其是多Dex合并操作),按以下步骤调整即可:

  1. 修改全局Gradle配置
    打开项目根目录下的gradle.properties文件,找到或添加以下配置,把堆内存调大到4GB:

    org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    

    这样能给Gradle守护进程分配足够的内存,避免在合并Dex时出现内存溢出。

  2. 补充应用级Dex配置(可选)
    打开android/app/build.gradle文件,在android块下添加dexOptions配置:

    android {
        // 其他配置...
        dexOptions {
            javaMaxHeapSize "4g"
        }
    }
    

    这会专门给Dex合并任务分配额外内存,进一步降低内存不足的概率。

  3. 清理Gradle缓存
    运行以下命令清理旧的构建缓存,避免缓存文件导致的异常:

    ./gradlew clean
    

二、修复React Native Firebase版本依赖冲突

警告提示@react-native-firebase/auth依赖@react-native-firebase/app v7.2.1,但你当前安装的是v7.3.0,版本不一致会引发构建或运行时问题,解决方法如下:

  1. 统一Firebase包版本
    打开项目根目录的package.json文件,将@react-native-firebase/app和@react-native-firebase/auth的版本统一为同一个版本:

    • 若想保留v7.3.0:将@react-native-firebase/auth的版本改为7.3.0
    • 若想降级到匹配的v7.2.1:将@react-native-firebase/app的版本改为7.2.1
  2. 重新安装依赖
    运行以下命令更新依赖:

    npm install
    # 用yarn的话执行:
    # yarn install
    
  3. 验证版本一致性
    运行以下命令确认两个包的版本已经统一:

    npm ls @react-native-firebase/app
    npm ls @react-native-firebase/auth
    

三、重新尝试构建

完成以上修复后,先启动Metro开发服务器(推荐加缓存重置):

npx react-native start --reset-cache

然后再运行构建命令:

./gradlew app:installDebug -PreactNativeDevServerPort=8081

内容的提问来源于stack exchange,提问作者Tushar Poddar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 10:32:47