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

React Native升级至0.72.3遇Java堆空间错误,求解决方案

解决React Native 0.72.3升级中JetifyTransform Java堆空间错误

针对升级RN从0.64.4到0.72.3时遇到的:invertase_react-native-apple-authentication:generateReleaseRFile任务失败、Java堆空间不足的问题,可按以下步骤尝试解决:

1. 增加Gradle JVM内存分配

在项目根目录的gradle.properties文件中添加或修改以下配置,给Gradle分配更多堆内存:

org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError

Jetify处理较大的react-android.aar文件需要足够内存,提升内存配额可直接解决堆溢出问题。

2. 彻底清理缓存与构建产物

执行以下命令清理所有可能的缓存和旧构建文件:

# 清理Android构建产物
cd android && ./gradlew clean
# 删除项目根目录的Gradle缓存
rm -rf .gradle
# 删除用户目录下的Gradle缓存(Mac/Linux)
rm -rf ~/.gradle/caches
# 清理Node依赖并重新安装
cd .. && rm -rf node_modules package-lock.json
npm install
# 清理Gradle构建缓存
cd android && ./gradlew cleanBuildCache

旧缓存可能存在损坏或不兼容的文件,清理后重新构建能避免依赖解析异常。

3. 升级第三方依赖至兼容版本

你使用的@invertase/react-native-apple-authentication需要适配RN 0.72版本,检查该库的最新版本并升级:

npm install @invertase/react-native-apple-authentication@latest

旧版本的第三方库可能依赖过时的RN组件,导致Jetify转换时出现异常。

4. 禁用Jetify(可选)

RN 0.72已全面迁移至AndroidX,多数依赖无需再通过Jetify转换。在gradle.properties中添加:

android.enableJetifier=false

若项目中仍有非AndroidX依赖,可针对性排除:

android.jetifier.blacklist=react-android-*.aar

5. 确保Gradle与AGP版本匹配

RN 0.72要求AGP(Android Gradle Plugin)版本≥7.3.1,Gradle版本≥7.5。修改android/build.gradle中的AGP版本:

buildscript {
    dependencies {
        classpath("com.android.tools.build:gradle:7.3.1")
        // 其他依赖...
    }
}

同时更新gradle/wrapper/gradle-wrapper.properties中的Gradle版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip

版本不匹配会导致构建过程中出现各种兼容性问题,包括依赖转换失败。


内容的提问来源于stack exchange,提问作者Eugene Shul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:24:52