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

daolsyd0  于 2023-05-05  发布在  Android
关注(0)|答案(6)|浏览(278)

我在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.更多信息...
1.将Android Studio设置为使用与Gradle相同的JDK并进行同步
1.不再显示此警告
我点击了:
将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.variant -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时出错无法为1572864 KB对象堆保留足够的空间有关详细信息,请参阅IDE日志(帮助|显示日志)(16秒166毫秒)
我检查了事件日志:
我想以前是这样做的:
指导gradle从C:/Program Files/Android/Android Studio/jre使用java
上面写着:
指示gradle从C:/Program Files(x86)/Java/jdk1.8.0_181使用java
如何将其设置回原来的状态,以便我的应用可以再次构建?
任何帮助/建议将不胜感激

h22fl7wq

h22fl7wq1#

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

mrphzbgm

mrphzbgm2#

您需要更改/添加一个环境变量。
按照this link了解如何更改/添加环境变量。
现在添加/修改变量'JAVA_HOME'并将路径设置为C:\Program Files\Android\Android Studio\jre
注意:当您稍后要在不同的IDE中处理不同的Java项目时,可能必须再次将此变量更改为默认的Java位置(在本例中可能是C:/Program Files (x86)/Java/jdk1.8.0_181

yshpjwxd

yshpjwxd3#

Ubuntu 16.04 LTS、Android Studio 3.6

这就是我如何摆脱警告:
1)在你的机器上找到AS启动器脚本studio.sh,我的在下面:/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)如果由于某种原因,您无法将环境变量导出到启动器(就像我在xfce 4会话中遇到的情况一样),您可以在studio.jdk文件中写入所需的JAVA_HOME值,根据脚本,该文件在我的系统上的位置是$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,您应该会看到 File -〉Project Structure -〉SDK Location 窗口下的JAVA_HOME设置为上述值,并且AS和gradle应该使用相同的JRE:

wljmcqd8

wljmcqd84#

在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.更多信息...
1.将Android Studio设置为使用与Gradle相同的JDK并同步项目
1.不再显示此警告

rnmwe5a2

rnmwe5a25#

Gradle显然使用的是我的原生Java安装(来自Oracle),而Android Studio使用的是自己的版本。
自从Android Studio升级到3.6.1后,我就一直忽略这个警告。到目前为止还没有问题。事实上,我已经发布了我的应用程序的新版本,没有任何问题。
如果这变得烦人,并且如果您没有其他问题,您可以选择忽略未来的警告:只需按下警告并选择选项即可忽略与此警告相关的未来消息。

uurity8g

uurity8g6#

Android Studio更新“Artic Fox|2020.3.1补丁4”在Linux(5.3.0-62-generic #56~18.04.1-Ubuntu)上使用Xfce 4桌面环境运行。
这种方式允许使用独立的,即未同步,系统和Android Studio上的JRE/JDK版本。

  • 已更改:Gradle设置已移至文件-〉设置-〉构建、执行、部署-〉构建工具-〉Gradle*

要使用独特的JRE/JDK执行Gradle,请执行以下操作:
1.打开Gradle设置并记下“Gradle JDK”路径。
提示:如果可以的话,首先选择“EmbeddedJDK”应该是一个合适的选择。
1.编辑Android Studio starter的属性(在开始菜单、桌面、系统菜单栏等),如下所示:
/home/USERNAME/android-studio/bin/studio.sh
并更改为
/bin/bash -c“export JAVA_HOME=〈GRRADLE JDK PATH FROM 1.〉;/home/m/android-studio/bin/studio.sh“
提示(未测试):可以将export JAVA_HOME=...语句插入到studio.sh脚本中,该脚本可能在更新时被覆盖。
检查:应用更改后,启动Android Studio并执行Build -〉Rebuild Project:错误消息应该已经消失。然后在File -〉Invalidate Caches / Restart之后进行同样的检查。最后,打开Android Studio嵌入式终端(单击底部行)并执行echo $JAVA_HOME。这应该显示〈GRADLE JDK PATH FROM 1.〉,而来自Android Studio外部的终端打开仍然应该显示(不同的)系统的JAVA_HOME。

相关问题