提供的 javaHome 似乎无效。我找不到 java 可执行文件。尝试位置:C:\Program Files\Java\jdk-17\bin\java.exe

49 java android gradle android-studio react-native

我已经为此纠结了三天了

每次运行命令时react-native run-android我都会收到此错误:

info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
(node:10284) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
Jetifier found 871 file(s) to forward-jetify. Using 16 workers...
info JS server already running.
info Installing the app...

FAILURE: Build failed with an exception.

* What went wrong:
The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: C:\Program Files\Java\jdk-17\bin\java.exe

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

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

FAILURE: Build failed with an exception.

* What went wrong:
The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: C:\Program Files\Java\jdk-17\bin\java.exe

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

    at makeError (C:\Users\username\Desktop\code\React Native\Build App\Scheduler\node_modules\execa\index.js:174:9)
    at C:\Users\username\Desktop\code\React Native\Build App\Scheduler\node_modules\execa\index.js:278:16
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async runOnAllDevices (C:\Users\username\Desktop\code\React Native\Build App\Scheduler\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:106:5)
    at async Command.handleAction (C:\Users\username\Desktop\code\React Native\Build App\Scheduler\node_modules\react-native\node_modules\@react-native-community\cli\build\index.js:192:9)info Run CLI with --verbose flag for more details.
Run Code Online (Sandbox Code Playgroud)

我使用 basic 创建了目录react-native init projectTesting

我的gradle版本是6.9
.\android\gradle\wrapper\gradle-wrapper.properties=>distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip

我的android studio版本是Android Studio 2020.3.1

我的java版本是15

C:\Users\username>java -version
java version "15" 2020-09-15
Java(TM) SE Runtime Environment (build 15+36-1562)
Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562, mixed mode, sharing)

C:\Users\username>javac -version
javac 15
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用 java 17 但在兼容性文档中它说:

执行 Gradle 需要 8 到 15 之间的 Java 版本。执行 Gradle 时尚不支持 Java 16 及更高版本。

任何帮助将非常非常感激!

sum*_*hra 107

如果有人在 Android Studio 更新到 Android Studio Electric Eel 后遇到此错误| 2022.1.1而不是简单地遵循以下步骤:

转到 android studio 目录(默认 C:\Program Files\Android\Android Studio),删除或重命名 jre 文件夹,cmd以管理员身份运行并创建符号链接:

cd /d C:\Program Files\Android\Android Studio
mklink /D jre jbr
Run Code Online (Sandbox Code Playgroud)

感谢这个链接

  • 无需删除 jre 文件夹,只需重命名它对我有用。 (3认同)

小智 77

更新到 Android Studio 22.1.1 后,只需删除 C:\Program Files\Android\Android Studio 中的文件夹 jre 它对我有用

  • 2022 年 1 月 1 日,我也做到了这一点;在花了一个小时使用 JAVA_HOME 和 JRE_HOME 等之后,谢谢,@cwang (3认同)

Muh*_*lta 27

删除Java17 SDKC:\Program Files\Java文件夹对我有用。使用openjdk11而不是Java17 SDK

  • 就我而言,我必须删除空的“jdk-20”文件夹才能让“flutter run”使用“jdk-17”文件夹。 (7认同)

小智 19

复制该文件夹的内容:

C:\Program Files\Android\Android Studio\jbr

进入这个文件夹:

C:\Program Files\Android\Android Studio\jre

你很好。

  • 其实只要删除jre文件夹就可以解决问题。显然有一个修复程序可以让 IDE 在找不到旧 jre 的情况下查看 jbr 文件夹。 (3认同)

Geo*_*rge 11

确保终端中的 JAVA_HOME 路径

echo %JAVA_HOME%
Run Code Online (Sandbox Code Playgroud)

拥有 \bin 是一个常见的错误,而 \bin 应该在 PATH 中,java home 只是你的 jdk 文件夹,如 C:\Program Files\Java\jdk-15 。

删除了 jdk-17 文件夹,然后卸载了 31 和 30 版本的 sdk 构建工具,这应该可以解决问题。


小智 7

进入 C:\Program Files\Android\Android Studio 你会发现“jbr”目录和“jre”目录,将“jbr”目录的内容复制到“jre”目录中。

再次运行您的项目。现在应该可以了。

笔记:

  • 如果拒绝粘贴,您可能必须先删除“jre”内的bin。
  • 您可能需要检查环境变量。


K_C*_*dio 6

我遇到了这个问题,因为我有多个 sdks,例如我的 java 文件夹中的 1.8 和 java 11。删除了除 11 之外的其他 jdks 对我有用。