Android Studio试图使用嵌入式JDK而非自定义安装时出现错误

9
自从我升级到Android Studio 2.3后,就无法使用内置的JDK。当我尝试构建项目时,会出现这样的错误:
Error:The newly created daemon process has a different context than expected.
Java home is different.
Expecting: 'D:\Development\IDE\AndroidStudio\jre' but was: 'C:\Program Files\Java\jre1.8.0_121'.
Please configure the JDK to match the expected one.
<a href="open.project.structure">Open JDK Settings</a>

但是,尽管没有定义JAVA_HOME环境变量,我仍然可以使用普通的JDK而没有任何问题,因此我不认为这是一个问题。Android Studio从哪里找到JAVA_HOME,以防止我使用嵌入式JDK呢?
我尝试卸载系统JDK以使其正常工作,并更新Java,导致它指向JRE。然后我重新安装了JDK,当我指向它时,它可以正常工作。但是我想使用嵌入式JDK。有什么想法吗?
我已经尝试在gradle.properties中设置JAVA_HOME,如评论中所述,但仍显示错误。
我添加的行是:
org.gradle.java.home=D:/Development/IDE/AndroidStudio/jre

它应该使嵌入式JDK工作(并在IDE中更改JAVA_HOME),但实际上并没有。它仍然会导致本帖顶部提到的相同错误。
在代码片段中,它说jre,那是因为当我复制它时,刚刚卸载了JDK。更新JDK和Java会导致JAVA_HOME设置为JDK位置,但它不被定义为环境变量。我尝试删除Android Studio配置文件夹中的JDK表格,但它没有起作用。
当我将JDK设置为嵌入式时,它的样子如下:

Screenshot showing the embedded JDK being enabled


请在下面提供您需要翻译的具体内容。 - Muntasir
我已经尝试过了 - 仍然给我相同的错误(与我在问题中发布的一样)。 - Zoe stands with Ukraine
JDK版本不是JDK位置。 - Zoe stands with Ukraine
1
有关于如何使用捆绑的 JDK 的说明。 - Muntasir
使用 Java 的 u_111 版本(而非 JDK)和 AS 2.2(.1?),我能够通过在 Android Studio 内勾选嵌入式 JDK 来使用它。但是在更新到 2.3 版本后(2.3.1 仍然存在这个问题),我遇到了我在问题中发布的错误。我的计算机上没有正式设置 java_home,但将其设置为已安装的 JDK 不会导致出现此错误。那么,如果环境变量中没有设置 JAVA_HOME,你知道 Android Studio 是从哪里找到它的吗? - Zoe stands with Ukraine
显示剩余9条评论
5个回答

3
尝试重置您更新的JDK的路径,然后再次检查。也许这会有所帮助。另外,请清除您的Android Studio临时缓存和所有内容。

重置你的路径 - 是JAVA_HOME还是Android Studio中的JDK位置?尝试了无效缓存/重启,但没有起作用。 - Zoe stands with Ukraine
1
在您安装Android Studio的位置安装Java,然后重置所有路径,并从命令提示符中检查Java。之后重启您的系统并检查它。 - parik dhakan

2
我通过卸载所有JDK安装和更新,然后重新安装一个JDK并确保其环境变量来解决了这个问题。
我没有解决方案,但我有同样的问题。当Android Studio从java_home/jre打开时,所有接下来将分叉的JVM都将来自此路径,而您的系统变量告诉Gradle从JAVA_HOME获取它的java.exe。
我尝试让Gradle从jre中读取,但失败了,我还尝试让Android Studio从java_home/bin打开,但也失败了。

我已经尝试过这种方法,一开始只安装了两个JDK,但是没有起作用。之后我卸载了JDK并重新安装了JRE,使JAVA_HOME指向JRE的安装路径。然后再安装了JDK,它自动指向了JDK,而无需手动定义JAVA_HOME。甚至我从未定义过JAVA_HOME,但也能正常运行。 - Zoe stands with Ukraine

1

我曾经遇到过与嵌入式JDK有关的问题,它在Android Studio版本2.2.3上运行良好,但当我更新后,每次Studio都会提示找不到JRE,然后我在项目文件夹中添加了系统JDK路径,现在整个Android Studio都卡住了,所以我又切回了Android Studio 2.2.3。似乎Android Studio 2.3.1是有缺陷的版本。


0

看起来,JDK版本存在一些不匹配。

所以尝试这个方法: 首先卸载所有的Jdk/jre和Android Studio。

清除临时文件/预取等。

然后简单地安装最新版本的Android Studio。

记住:不要安装任何其他JDK/jre,并确保您的系统具有适当的互联网连接。所有缺失的文件都会自动下载。

我已经尝试过这个方法,对我有效。我希望它也能对你有效。


JDK和JRE都是相同的版本,当我开始遇到这个问题时,我更新了它们。在安装2.3之后出现了这个问题,并在2.3.1中继续存在。目前正在运行最新版本的2.3.1。我已经使其无效/重新启动 -> 设置嵌入式JDK(出现错误)-> 使其无效/重新启动 -> 仍然无法工作。 - Zoe stands with Ukraine

0

我必须说AS在环境设置方面有太多的问题。有一些概念我们需要知道。

  1. AS默认的Java运行时环境本身,如下所示。

AS默认的Java运行时环境本身。

  1. 系统有另一个Java_home,如下所示。

系统的JDK版本

然后问题来了,当系统的JDK版本与AS的JDK版本不匹配时会发生什么?

i.

java.lang.UnsupportedClassVersionError

ii.

Gradle失败:证书...

iii. 还有一些我现在想不起来的其他错误。

解决方案: 如果您的AS更新到最新版本,您应该将Gradle更新到最新版本,并确保您系统的JDK与AS的JDK版本匹配。至少,您的jdk版本更新到JDK1.8.0以上。当您完成所有这些操作后,请尝试重新启动AS,如果可以工作,请尝试重新启动计算机。

额外提示: 代理软件在Gradle同步时会产生一些影响,如果有任何关于证书的提示,请尝试关闭代理软件并重试。


Gradle和JDK是最新的更新。使用1.8更新121。 - Zoe stands with Ukraine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接