运行yarn android编译React Native报Unrecognized VM option 'MaxPermSize=2048m'错如何解决
错误原因
这个报错是因为MaxPermSize是JDK 8及更早版本专属的永久代内存配置参数,JDK 9及更高版本移除了永久代,改用元空间(Metaspace)实现,无法识别该参数,因此JVM启动失败。
解决方案
方案一:修改项目Gradle配置(推荐,适配高版本JDK)
- 打开项目下的
android/gradle.properties文件 - 找到
org.gradle.jvmargs配置行,删除其中的-XX:MaxPermSize=2048m参数 - 若需要限制元空间大小,可添加
-XX:MaxMetaspaceSize=2048m作为替代,修改后配置示例如下:
org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
- 保存配置后,依次执行以下命令重新编译:
cd android ./gradlew clean cd .. yarn android
方案二:切换JDK版本到JDK 8
如果项目依赖旧版Gradle,和高版本JDK存在其他兼容问题,可直接切换到JDK 8运行:
- 执行命令安装OpenJDK 8:
sudo apt install openjdk-8-jdk
- 切换系统默认JDK版本:
sudo update-alternatives --config java
在弹出的选项列表中,输入OpenJDK 8对应的序号,回车确认。
- 执行
java -version验证版本,确认输出为1.8.x系列版本后,重新执行yarn android编译即可。
注意事项
如果修改后仍报错,检查当前用户的Shell配置文件(~/.bashrc/~/.zshrc等),是否存在包含MaxPermSize的GRADLE_OPTS全局环境变量配置,如有则删除或替换为元空间参数,修改后执行source 对应配置文件路径生效。
内容的提问来源于stack exchange,提问作者Yifan
相关产品推荐
相关产品推荐

