You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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字段不为空,且格式正确,示例:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
    
    (注意:Gradle版本需与项目React Native版本兼容,可参考根目录package.json中react-native版本对应的官方要求)
  • 若字段为空或格式错误,修改为有效URL后保存文件

2. 清理Gradle缓存

  • 删除本地Gradle缓存文件夹:
    • Windows:C:\Users\<你的用户名>\.gradle\wrapper\dists
    • Mac/Linux:~/.gradle/wrapper/dists
  • 进入项目的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:50:35