如何指示 Gradle 从不同位置使用 Java?

Shi*_*ama 26 android gradle android-studio android-gradle-plugin

我在 Android Studio 中构建我的测试应用程序,然后在事件日志中它说:

Android Studio 正在使用此 JDK 位置:C:\Program Files\Android\Android Studio\jre,这与 Gradle 默认使用的不同:C:\Program Files (x86)\Java\jdk1.8.0_181 使用不同的位置可能会产生如果在使用 Android Studio 时从命令行运行 Gradle 任务,则需要多个 Gradle 守护进程。

然后给出了这些选项:

  1. 更多信息...
  2. 设置 Android Studio 使用与 Gradle 相同的 JDK 并同步
  3. 不再显示此警告

我点击了:

设置 Android Studio 使用与 Gradle 相同的 JDK 并同步

然后我的应用程序不想再构建了。

这是错误:

Gradle 同步失败:无法启动守护进程。
此问题可能是由守护程序的错误配置引起的。

例如,使用了无法识别的 jvm 选项。
请参阅https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html上有关守护程序的用户手册章节

进程命令行:C:\Program Files (x86)\Java\jdk1.8.0_181\bin\java.exe -Xmx1536m -Dfile.encoding=windows-1252 -Duser.country=ZA -Duser.language=en -Duser。变体 -cp C:\Users\{MyUserName}\.gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx\gradle-5.4.1\lib\gradle-launcher-5.4.1.jar org.gradle。启动器.daemon.bootstrap.GradleDaemon 5.4.1

请阅读以下过程输出以了解更多信息:

VM 初始化期间发生错误无法为 1572864KB 对象堆保留足够的空间 请查阅 IDE 日志以获取更多详细信息(帮助 | 显示日志)(16 秒 166 毫秒)

我检查了事件日志:

我认为以前它是这样做的:

从 C:/Program Files/Android/Android Studio/jre 指示 gradle 使用 java

现在它是这样说的:

从 C:/Program Files (x86)/Java/jdk1.8.0_181 指示 gradle 使用 java

如何将其设置回原来的状态,以便我的应用程序可以再次构建?

任何帮助/建议将不胜感激

Hoo*_*net 28

转到文件、项目结构、SDK 位置并将 JDK 位置下拉列表更改为 JAVA_HOME。

Androdi Studio 3.6 beta 中的项目结构

  • 尝试了一下,然后出现了与我的问题相同的错误。我使用的是 64 位 Windows。 (4认同)
  • 它只是不保存jdk位置。当我返回这个菜单时总是有以前的值。 (2认同)
  • 这在切换到完整的 Kotlin DSL Gradle 构建时很有帮助 (2认同)

小智 5

您需要更改/添加环境变量。

按照此链接了解如何更改/添加环境变量。

现在添加/修改变量“JAVA_HOME”并将路径设置为 C:\Program Files\Android\Android Studio\jre

注意:当您稍后要在不同的 IDE 中处理不同的 Java 项目时,您可能需要再次将此变量更改为默认的 Java 位置(在这种情况下可能是C:/Program Files (x86)/Java/jdk1.8.0_181


Shi*_*ama 0

在 Android Studio 上我做了:

文件 > 项目结构... > SDK 位置(在左侧窗格中)

然后在底部有一个下拉菜单:JDK位置:

然后我选择/浏览到这个目录:

C:\Program Files\Java\jdk1.8.0_181

之后 Gradle Sync 再次为我工作,但我仍然收到此警告:

Android Studio 使用以下 JDK 位置:C:\Program Files\Java\jdk1.8.0_181,这与 Gradle 默认使用的位置不同:C:\Program Files (x86)\Java\jdk1.8.0_181。如果在使用 Android Studio 时从命令行运行 Gradle 任务,则使用不同的位置可能会生成多个 Gradle 守护进程。

  1. 更多信息...
  2. 设置 Android Studio 使用与 Gradle 相同的 JDK 并同步项目
  3. 不再显示此警告