React Native安卓运行报错:无法创建Java虚拟机及模拟器识别异常
Hey,我之前踩过几乎一模一样的坑,分两个问题给你逐个解决:
问题1:React Native找不到已安装的模拟器
报错提示 Error Failed to launch emulator. Reason: No emulators found as an output of emulator -list-avds,可以按以下步骤排查:
- 先手动在终端运行
emulator -list-avds,看看能不能列出你的模拟器:- 如果没输出,说明系统找不到emulator命令,检查你的环境变量配置:确保
ANDROID_SDK_ROOT指向正确的Android SDK目录,并且$ANDROID_SDK_ROOT/emulator和$ANDROID_SDK_ROOT/platform-tools已经添加到系统的PATH里 - 如果能列出模拟器,但react-native还是识别不到,试试先手动启动模拟器(打开AVD Manager点击启动),再重新运行
react-native run-android - 还可以试试重启adb服务:终端运行
adb kill-server,然后adb start-server,再重新执行打包命令
- 如果没输出,说明系统找不到emulator命令,检查你的环境变量配置:确保
问题2:Gradle守护进程启动失败(JDK15兼容性问题)
报错Unrecognized VM option 'CMSClassUnloadingEnabled'是因为JDK15已经移除了CMS垃圾回收器的相关参数,而旧版Gradle默认配置里还在使用这些参数。有两个解决方向:
- 方案一:切换到兼容的JDK版本(推荐)
React Native官方推荐使用JDK 11或者JDK 8,你可以安装对应版本的JDK,然后修改JAVA_HOME环境变量指向这个新版本的JDK,之后重启终端再运行react-native run-android - 方案二:修改Gradle配置文件
如果不想换JDK,就手动移除废弃的参数:- 打开项目根目录下的
gradle.properties文件 - 找到包含
org.gradle.jvmargs的行,删掉里面的-XX:+CMSClassUnloadingEnabled参数 - 可以把该行替换为适配JDK15的配置,比如:
org.gradle.jvmargs=-Xmx2048m --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED - 保存文件后,运行
./gradlew clean清理缓存,再重新执行打包命令
- 打开项目根目录下的
内容的提问来源于stack exchange,提问作者Bomber
相关产品推荐
相关产品推荐

