React Native项目Gradle启动报错:MaxPermSize不识别及类版本不兼容
React Native(Apple Silicon)Gradle报错解决方案
错误原因解析
Unrecognized VM option 'MaxPermSize=512m':该参数是JDK 8及更早版本的永久代配置,JDK 9+已移除永久代,改用元空间(Metaspace),高版本JDK无法识别该参数。Unsupported class file major version 64:版本64对应JDK 20,说明你当前使用的JDK版本过高,项目依赖的Gradle版本不支持该JDK版本。
具体修复步骤
1. 修正gradle.properties的JVM参数
打开项目根目录下的gradle.properties文件,将原配置:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
修改为:
org.gradle.jvmargs=-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
若需调整元空间大小,可添加-XX:MaxMetaspaceSize=512m,多数场景下默认配置足够,无需额外添加
2. 适配JDK与Gradle版本
Apple Silicon Mac默认可能安装高版本JDK(如JDK 20),需确保Gradle版本与JDK版本兼容:
- JDK 11 → Gradle 5.4.1+
- JDK 17 → Gradle 7.3+
- JDK 20 → Gradle 7.6+
方案A:升级Gradle版本
打开gradle/wrapper/gradle-wrapper.properties,修改distributionUrl至兼容版本,例如支持JDK 20的Gradle 7.6:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
方案B:指定项目使用兼容JDK(如JDK 17)
- 安装JDK 17(通过Homebrew):
brew install openjdk@17
- 设置临时环境变量(终端中执行):
export JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home
- 在项目
android/build.gradle中配置编译版本:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } }
3. 清理缓存并重新构建
执行以下命令清理旧缓存,避免残留影响:
cd android ./gradlew clean cd .. npx react-native run-android
内容的提问来源于stack exchange,提问作者julcodecode
相关产品推荐
相关产品推荐

