如何在Android Studio模拟器中打开React Native应用?遇Gradle空指针错误
React Native Android应用安装失败解决方案
错误信息
执行npx react-native run-android后模拟器成功启动,但应用安装失败,报错如下:
$ npx react-native run-android info JS server already running. info Launching emulator... info Successfully launched emulator. info Installing the app... Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.lastIndexOf(String)" because "path" is null at org.gradle.wrapper.PathAssembler.getDistName(PathAssembler.java:83) at org.gradle.wrapper.PathAssembler.getDistribution(PathAssembler.java:39) at org.gradle.wrapper.Install.createDist(Install.java:58) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:63) error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081 Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.lastIndexOf(String)" because "path" is null at org.gradle.wrapper.PathAssembler.getDistName(PathAssembler.java:83) at org.gradle.wrapper.PathAssembler.getDistribution(PathAssembler.java:39) at org.gradle.wrapper.Install.createDist(Install.java:58) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:63) at makeError (E:\Code Projects\AwesomeProject\node_modules\@react-native-community\cli-platform-android\node_modules\execa\index.js:174:9) at E:\Code Projects\AwesomeProject\node_modules\@react-native-community\cli-platform-android\node_modules\execa\index.js:278:16 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async runOnAllDevices (E:\Code Projects\AwesomeProject\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:109:5) at async Command.handleAction (E:\Code Projects\AwesomeProject\node_modules\@react-native-community\cli\build\index.js:142:9) info Run CLI with --verbose flag for more details.
解决方案
1. 检查Gradle Wrapper配置文件
- 进入项目的
android/gradle/wrapper目录,打开gradle-wrapper.properties文件 - 确保
distributionUrl字段不为空,且格式正确,示例:
(注意:Gradle版本需与项目React Native版本兼容,可参考根目录distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zippackage.json中react-native版本对应的官方要求) - 若字段为空或格式错误,修改为有效URL后保存文件
2. 清理Gradle缓存
- 删除本地Gradle缓存文件夹:
- Windows:
C:\Users\<你的用户名>\.gradle\wrapper\dists - Mac/Linux:
~/.gradle/wrapper/dists
- Windows:
- 进入项目的
android目录,执行命令:# Windows gradlew clean # Mac/Linux ./gradlew clean - 重新执行
npx react-native run-android
3. 验证环境变量配置
- 确认
ANDROID_HOME(或ANDROID_SDK_ROOT)已正确设置为Android SDK安装目录 - 确认
JAVA_HOME指向JDK 11的安装目录(React Native官方推荐版本) - 重启命令行终端,确保环境变量生效后再尝试运行应用
4. 重新生成Gradle Wrapper
若上述步骤无效,可手动重新生成Wrapper:
- 进入项目的
android目录,执行命令(替换为对应版本号):gradle wrapper --gradle-version 7.5 - 生成完成后,再次执行
npx react-native run-android
内容的提问来源于stack exchange,提问作者Chaman Narved
相关产品推荐
相关产品推荐

