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


9

我当时在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 = zh-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。 launcher.daemon.bootstrap.GradleDaemon 5.4.1

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

VM初始化期间发生错误无法为1572864KB对象堆保留足够的空间。有关更多详细信息,请查阅IDE日志(“帮助” |“显示日志”)(16 s 166 ms)

我检查了事件日志:

我认为以前是这样做的:

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

现在它说:

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

如何将其重新设置为可以重新构建我的应用的方式?

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

Answers:


2

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

Androdi Studio 3.6 Beta中的项目结构


1
试图然后得到了与我的问题相同的错误。我使用的是64位Windows。
Shiasu-sama,

1

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

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

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

注意:以后要在其他IDE中处理另一个Java项目时,可能必须再次将此变量更改为默认Java位置(在这种情况下,可能是C:/Program Files (x86)/Java/jdk1.8.0_181


0

Gradle显然正在使用我的本机Java安装(来自Oracle),而Android Studio正在使用其自己的版本。

自将Android Studio升级到3.6.1以来,我一直无视此警告。到目前为止没有问题。确实,我已经发布了我的应用程序的新版本,没有任何问题。

如果这变得令人讨厌,并且如果没有其他问题,则可以选择忽略以后的警告:只需按警告,然后选择选项即可忽略以后与此警告相关的消息。


0

Ubuntu 16.04 LTS,Android Studio 3.6

这就是我摆脱警告的方式:

1)studio.sh在您的计算机上找到AS启动器脚本,我的位于以下位置:/opt/android-studio-3.x/bin
2)在脚本内,您会发现以下几行:

# ---------------------------------------------------------------------
# Locate a JDK installation directory which will be used to run the IDE.
# Try (in order): STUDIO_JDK, studio.jdk, ./jre64, JDK_HOME, JAVA_HOME, "java" in PATH.
# ---------------------------------------------------------------------
if [ -n "$STUDIO_JDK" -a -x "$STUDIO_JDK/bin/java" ]; then
  JDK="$STUDIO_JDK"
fi

if [ -z "$JDK" -a -s "$HOME/.AndroidStudio3.6/config/studio.jdk" ]; then
  USER_JRE=`"$CAT" $HOME/.AndroidStudio3.6/config/studio.jdk`
...

3)如果由于某种原因,你无法将自己的环境变量导出到发射器(像它发生在我身上从XFCE4会话),你可以写所需JAVA_HOME的内在价值studio.jdk我的系统上,其位置的文件,按照该脚本,位于中$HOME/.AndroidStudio3.6/config/studio.jdk

$ echo $JAVA_HOME > $HOME/.AndroidStudio3.6/config/studio.jdk
$ cat $HOME/.AndroidStudio3.6/config/studio.jdk
/usr/lib/jvm/java-8-oracle

4)最后,从DE会话重新启动AS,你应该看到JAVA_HOME文件- >项目结构- > SDK位置窗口设置为上述值,AS和gradle这个应该使用相同的JRE:

项目结构窗口


-1

在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. 不再显示此警告

然后,我单击了不满意的内容:“不再显示此警告”:/
Shiasu-sama,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.