简体   繁体   English

Android Studio 给出关于 JDK 位置的警告

[英]Android Studio gives a warning about JDK location

Android Studio 3.6 displays the following warning after Gradle sync completes: Android Studio 3.6 在 Gradle 同步完成后显示以下警告:

15:51   Gradle sync finished in 27 s 97 ms

15:51   Android Studio is using the following JDK location when running Gradle:
                /home/azabost/java/jdk8u252-b09
                Using different JDK locations on different processes might cause Gradle to
                spawn multiple daemons, for example, by executing Gradle tasks from a terminal
                while using Android Studio.

I have no clue why I see it and if it makes any sense.我不知道为什么我会看到它,也不知道它是否有意义。 The projects build normally with no issues whatsoever.项目正常构建,没有任何问题。 I'm on a fresh Ubuntu system where I installed AdoptOpenJDK to /home/azabost/java/jdk8u252-b09 and Android Studio 3.6 to /home/azabost/bin/android-studio-3.6 .我在一个新的 Ubuntu 系统上,我将 AdoptOpenJDK 安装到/home/azabost/java/jdk8u252-b09和 Android Studio 3.6 到/home/azabost/bin/android-studio-3.6 I exported several JDK related paths: JAVA_HOME , JDK_HOME and STUDIO_JDK to make sure Android Studio can pick up my JDK properly.我导出了几个与 JDK 相关的路径: JAVA_HOMEJDK_HOMESTUDIO_JDK以确保 Android Studio 可以正确选择我的 JDK。 Below are the outputs of a few commands showing the proper JDK location:下面是一些显示正确 JDK 位置的命令的输出:

$ which java
/home/azabost/java/jdk8u252-b09/bin/java
$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.252-b09, mixed mode)
$ export | grep java
JAVA_HOME=/home/azabost/java/jdk8u252-b09
JDK_HOME=/home/azabost/java/jdk8u252-b09
PATH=/home/azabost/bin:/home/azabost/java/jdk8u252-b09/bin:/home/azabost/bin/android-sdk/platform-tools:/home/azabost/bin/android-sdk/emulator:/home/azabost/bin/android-sdk/cmdline-tools/latest/bin:/home/azabost/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
STUDIO_JDK=/home/azabost/java/jdk8u252-b09

./gradlew --version

------------------------------------------------------------
Gradle 6.3
------------------------------------------------------------

Build time:   2020-03-24 19:52:07 UTC
Revision:     bacd40b727b0130eeac8855ae3f9fd9a0b207c60

Kotlin:       1.3.70
Groovy:       2.5.10
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          1.8.0_252 (AdoptOpenJDK 25.252-b09)
OS:           Linux 5.4.0-28-generic amd64

When I open the Project Stucture dialog in Android Studio I can see the proper JDK is set.当我在 Android Studio 中打开 Project Stucture 对话框时,我可以看到设置了正确的 JDK。 But when I click the drop-down menu to select a different JDK, I can see something strange.但是当我点击下拉菜单到 select 一个不同的 JDK 时,我可以看到一些奇怪的东西。 There are 2 options:有2个选项:

  1. Embedded JDK: /home/azabost/bin/android-studio-3.6/jre嵌入式 JDK:/home/azabost/bin/android-studio-3.6/jre
  2. JAVA_HOME: /home/azabost/bin/android-studio-3.6/jre JAVA_HOME:/home/azabost/bin/android-studio-3.6/jre

So the embedded JDK is listed twice , including the one with "JAVA_HOME" description which is weird because, as you could see, my JAVA_HOME variable points to another JDK.所以嵌入式 JDK 列出了两次,包括一个带有“JAVA_HOME”描述的,这很奇怪,因为如您所见,我的JAVA_HOME变量指向另一个 JDK。 I'm not sure if this particular list issue is related to the warning I see.我不确定这个特定的列表问题是否与我看到的警告有关。

And this is what I see in ~/.AndroidStudio3.6/config/options/jdk.table.xml file:这就是我在~/.AndroidStudio3.6/config/options/jdk.table.xml文件中看到的:

cat ~/.AndroidStudio3.6/config/options/jdk.table.xml
<application>
  <component name="ProjectJdkTable">
    <jdk version="2">
      <name value="1.8" />
      <type value="JavaSDK" />
      <version value="java version &quot;1.8.0_252&quot;" />
      <homePath value="$USER_HOME$/java/jdk8u252-b09" />
      <roots>
        <annotationsPath>
          <root type="composite">
            <root url="jar://$APPLICATION_HOME_DIR$/plugins/java/lib/jdkAnnotations.jar!/" type="simple" />
          </root>
        </annotationsPath>
        <classPath>
          <root type="composite">
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/charsets.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/cldrdata.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/dnsns.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/jaccess.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/localedata.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/nashorn.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/sunec.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/sunjce_provider.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/sunpkcs11.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/ext/zipfs.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/jce.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/jsse.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/management-agent.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/resources.jar!/" type="simple" />
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/jre/lib/rt.jar!/" type="simple" />
          </root>
        </classPath>
        <javadocPath>
          <root type="composite" />
        </javadocPath>
        <sourcePath>
          <root type="composite">
            <root url="jar://$USER_HOME$/java/jdk8u252-b09/src.zip!/" type="simple" />
          </root>
        </sourcePath>
      </roots>
      <additional />
    </jdk>
    <jdk version="2">
      <name value="Android API 29 Platform" />
      <type value="Android SDK" />
      <version value="java version &quot;1.8.0_252&quot;" />
      <homePath value="$USER_HOME$/bin/android-sdk" />
      <roots>
        <annotationsPath>
          <root type="composite">
            <root url="jar://$APPLICATION_HOME_DIR$/plugins/android/lib/androidAnnotations.jar!/" type="simple" />
          </root>
        </annotationsPath>
        <classPath>
          <root type="composite">
            <root url="jar://$USER_HOME$/bin/android-sdk/platforms/android-29/android.jar!/" type="simple" />
            <root url="file://$USER_HOME$/bin/android-sdk/platforms/android-29/data/res" type="simple" />
          </root>
        </classPath>
        <javadocPath>
          <root type="composite" />
        </javadocPath>
        <sourcePath>
          <root type="composite">
            <root url="file://$USER_HOME$/bin/android-sdk/sources/android-29" type="simple" />
          </root>
        </sourcePath>
      </roots>
      <additional jdk="1.8" sdk="android-29" />
    </jdk>
    <jdk version="2">
      <name value="Kotlin SDK" />
      <type value="KotlinSDK" />
      <homePath value="$KOTLIN_BUNDLED$" />
      <roots>
        <annotationsPath>
          <root type="composite" />
        </annotationsPath>
        <classPath>
          <root type="composite" />
        </classPath>
        <javadocPath>
          <root type="composite" />
        </javadocPath>
        <sourcePath>
          <root type="composite" />
        </sourcePath>
      </roots>
      <additional />
    </jdk>
    <jdk version="2">
      <name value="1.8 (2)" />
      <type value="JavaSDK" />
      <version value="java version &quot;1.8.0_212&quot;" />
      <homePath value="$APPLICATION_HOME_DIR$/jre" />
      <roots>
        <annotationsPath>
          <root type="composite">
            <root url="jar://$APPLICATION_HOME_DIR$/plugins/java/lib/jdkAnnotations.jar!/" type="simple" />
          </root>
        </annotationsPath>
        <classPath>
          <root type="composite">
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/charsets.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/cldrdata.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/dnsns.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/jaccess.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/localedata.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/nashorn.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/sunec.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/sunjce_provider.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/sunpkcs11.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/ext/zipfs.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/jce.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/jsse.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/management-agent.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/resources.jar!/" type="simple" />
            <root url="jar://$APPLICATION_HOME_DIR$/jre/jre/lib/rt.jar!/" type="simple" />
          </root>
        </classPath>
        <javadocPath>
          <root type="composite">
            <root url="https://docs.oracle.com/javase/8/docs/api/" type="simple" />
          </root>
        </javadocPath>
        <sourcePath>
          <root type="composite" />
        </sourcePath>
      </roots>
      <additional />
    </jdk>
    <jdk version="2">
      <name value="Android API 28 Platform" />
      <type value="Android SDK" />
      <version value="java version &quot;1.8.0_212&quot;" />
      <homePath value="$USER_HOME$/bin/android-sdk" />
      <roots>
        <annotationsPath>
          <root type="composite">
            <root url="jar://$USER_HOME$/bin/android-sdk/platforms/android-28/data/annotations.zip!/" type="simple" />
          </root>
        </annotationsPath>
        <classPath>
          <root type="composite">
            <root url="jar://$USER_HOME$/bin/android-sdk/platforms/android-28/android.jar!/" type="simple" />
            <root url="file://$USER_HOME$/bin/android-sdk/platforms/android-28/data/res" type="simple" />
          </root>
        </classPath>
        <javadocPath>
          <root type="composite" />
        </javadocPath>
        <sourcePath>
          <root type="composite">
            <root url="file://$USER_HOME$/bin/android-sdk/sources/android-28" type="simple" />
          </root>
        </sourcePath>
      </roots>
      <additional jdk="1.8 (2)" sdk="android-28" />
    </jdk>
  </component>
</application>% 

And according to ps -x Android Studio launched using the embedded JDK:并根据ps -x Android Studio 使用嵌入式 JDK 启动:

ps -x | grep studio
  28805 ?        S      0:00 /bin/sh /home/azabost/bin/android-studio-3.6/bin/studio.sh
  28908 ?        Sl     5:06 /home/azabost/bin/android-studio-3.6/jre/bin/java -classpath /home/azabost/bin/android-studio-3.6/lib/bootstrap.jar:/home/azabost/bin/android-studio-3.6/lib/extensions.jar:/home/azabost/bin/android-studio-3.6/lib/util.jar:/home/azabost/bin/android-studio-3.6/lib/jdom.jar:/home/azabost/bin/android-studio-3.6/lib/log4j.jar:/home/azabost/bin/android-studio-3.6/lib/trove4j.jar:/home/azabost/bin/android-studio-3.6/lib/jna.jar:/home/azabost/bin/android-studio-3.6/jre/lib/tools.jar -Xms256m -Xmx1280m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -Djna.nosys=true -Djna.boot.library.path= -da -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine -Dsun.tools.attach.tmp.only=true -Xmx3072m -XX:ErrorFile=/home/azabost/java_error_in_STUDIO_%p.log -XX:HeapDumpPath=/home/azabost/java_error_in_STUDIO.hprof -Didea.paths.selector=AndroidStudio3.6 -Djb.vmOptionsFile=/home/azabost/bin/android-studio-3.6/bin/studio64.vmoptions,/home/azabost/.AndroidStudio3.6/config/studio64.vmoptions -Didea.platform.prefix=AndroidStudio -Didea.jre.check=true com.intellij.idea.Main

The error clearly saying that you have installed android studio in java directory.该错误清楚地表明您已经在 java 目录中安装了 android studio。 Its saying change the location.它的说法改变了位置。 U can give other drive path to installed the studio.你可以给安装工作室的其他驱动器路径。 download the upgraded version of java from 1.8 https://www.oracle.com/in/java/technologies/javase-downloads.html Also change your path from the existing directory. download the upgraded version of java from 1.8 https://www.oracle.com/in/java/technologies/javase-downloads.html Also change your path from the existing directory.

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM