React Native执行启动命令报错:找不到exec()方法求助
解决方案
1. 同步Gradle与JDK 17的兼容配置
Gradle 7.3支持JDK 17,但需确保项目Gradle相关配置同步更新:
- 打开
android/build.gradle文件,更新Gradle插件版本至适配JDK17的7.4+:dependencies { classpath("com.android.tools.build:gradle:7.4.2") // 保留其他原有依赖 } - 检查
android/gradle/wrapper/gradle-wrapper.properties中的分发路径,确保无拼写错误:distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip - 进入
android目录执行清理命令:gradlew clean(Windows)或./gradlew clean(Mac/Linux)。
2. 修复Android SDK环境变量
react-native doctor检测不到SDK,核心原因是环境变量未正确配置:
- 添加系统环境变量
ANDROID_HOME,值为你的Android SDK安装路径(例如C:\Users\valen\AppData\Local\Android\Sdk) - 在系统
Path变量中追加以下路径:%ANDROID_HOME%\platform-tools%ANDROID_HOME%\tools%ANDROID_HOME%\tools\bin
- 关闭所有终端、IDE后重启,执行
echo %ANDROID_HOME%验证变量生效,再运行react-native doctor重新检测SDK状态。
3. 修复CLI执行错误
找不到exec()方法多与Node模块缓存、CLI版本不兼容有关:
- 清除Node模块与缓存:
rm -rf node_modules package-lock.json yarn.lock npm cache clean --force npm install - 验证React Native CLI版本,执行
npx react-native --version,若版本过低,升级至适配JDK17的0.70+版本:npm install react-native@latest --save
4. 调整项目编译配置
- 打开
android/app/build.gradle,确保编译SDK版本适配最新环境:android { compileSdkVersion 33 defaultConfig { targetSdkVersion 33 // 保留其他原有配置 } } - 执行
npx react-native start --reset-cache清除Metro缓存后启动服务。
5. 重新运行项目
完成上述步骤后,依次执行:
npx react-native start --reset-cache npx react-native run-android
内容的提问来源于stack exchange,提问作者Valentin Georis
相关产品推荐
相关产品推荐

