IntelliJ构建错误上下文不匹配

时间:2016-02-21 12:18:54

标签: java android android-studio intellij-idea

我想使用IntelliJ IDEA 15代替Android Studio,但我在构建时遇到问题。我收到以下错误:

Gradle sync failed: The newly created daemon process has a different context than expected.
It won't be possible to reconnect to this daemon. Context mismatch: 
Java home is different.
Wanted: DefaultDaemonContext[uid=null,javaHome=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 15.0\jre,daemonRegistryDir=C:\Users\Tim\.gradle\daemon,pid=1224,idleTimeout=null,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252,-Duser.country=DE,-Duser.language=de,-Duser.variant]
Actual: DefaultDaemonContext[uid=6fd89265-5686-4337-a75f-538209464d3a,javaHome=C:\Program Files\Java\jdk1.8.0_74,daemonRegistryDir=C:\Users\Tim\.gradle\daemon,pid=14128,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252,-Duser.country=DE,-Duser.language=de,-Duser.variant]

我的错误是什么?正如您在下面的图片中看到的,一切都配置正确。

我已经按如下方式配置了JDK和Android工具:

Project SDK2 SDK1

13 个答案:

答案 0 :(得分:76)

我在调查类似的问题时发现了这个问题,我解决了我的问题,所以也许我的经验会有所帮助。

观察

我的问题与您的问题类似,Wanted上下文将javaHome作为IDEA安装文件夹中嵌入的JRE的路径,而Actual上下文将其作为我路上的第一个Java版本。我在网上发现了几个类似的错误报告,但没有一个IDEA嵌入了JRE作为Wanted版本。

Wanted Java版本碰巧是JRE的系统范围安装,而不是我为项目配置的JDK,也没有为JAVA_HOME设置的值,这让我非常怀疑(并且困惑)。重新排序我的路径导致它使用另一个“不需要的”Java版本,所以它显然使用路径来选择运行什么,但不清楚为什么。我无法让IntelliJ的嵌入式JRE成为我的首选,因为出于各种原因我需要将它作为JDK,所以我需要另一种解决方案。

我还注意到(使用Process Explorer,因为我在Windows上),在失败的情况下,IntelliJ启动了许多java.exe Gradle守护程序进程,并且在我之前肯定没有运行守护程序进程我试图开始构建。

解决方案

原因是我在“运行/调试配置”对话框中定义了一个新配置,并将build.gradle字段的完整路径放在Gradle project:字段中,如下所示。 (我通过单击字段右侧的省略号(...)按钮来完成此操作,但我也可以直接输入它。)

Run/Debug Configurations dialog showing Gradle project as an explicit path to a Gradle build file

但是,我应该做的是遵循现有配置中的模式,其中Gradle project:被指定为“已注册的项目”,方法是单击该字段右侧的“文件夹”图标,突出显示在绿色如下图所示。在这种情况下,字段的内容只是项目名称,并以略微不同的背景/前景色显示。 (我意外地发现右键单击此名称会将其替换为包含build.gradle的文件夹的路径,但如果您取消并再次开始编辑配置,它仍将显示为项目名称。)< / p>

Run/Debug Configurations dialog showing Gradle project as the name of a registered project

进行此更改后,按预期构建配置,我发现只启动了一个java.exe,使用与从UI中的“Gradle”面板运行任务时相同的JDK路径。 p>

答案 1 :(得分:42)

我使用idea64.exe而不是idea.exe

解决了这个问题

enter image description here

答案 2 :(得分:22)

  1. 在文件夹gradle.properties(* nix机器上的%USERPROFILE%\.gradle\)上创建文件~/.gradle/
  2. 在此文件中添加字符串org.gradle.java.home={actual path to jdk}(在MacOS运行/usr/libexec/java_home中了解它)

答案 3 :(得分:14)

对我来说,这个问题是通过在64位模式下运行IDE来解决的,因为我只安装了64位JRE。

答案 4 :(得分:5)

我遇到了完全相同的问题,这对我有用。

我从IntelliJ 项目的根目录中删除了<?php $html=''; $html.='<select>'; $queryExercise="SELECT exerciseName FROM workouts"; $queryExercise=mysql_query($queryExercise); while($result=mysql_fetch_array($queryExercise)) { $exerciseName=$result['exerciseName']; $html.= '<option value="'.$exerciseName.'">'.$exerciseName.'</option>'; } $html.='</select>'; echo $html; ?> .idea个文件。重新启动IntelliJ并再次打开我的项目。

答案 5 :(得分:2)

对于MacOSX,为我解决的问题是将IntelliJ中的SDK指向Contents/Home。例如:

此:

/ Users //。sdkman / candidates / java / 14.0.1-zulu / zulu-14.jdk / Contents / Home

代替此:

/ Users //。sdkman / candidates / java / 14.0.1-zulu

目前正在使用最新的Java(14.0.1-zulu),Gradle(6.5)和Kotlin(1.4-M2)。

答案 6 :(得分:1)

对我有用的是:

  • 卸载intelliJ
  • 重新安装intelliJ,但在安装过程中确保不要检查&#34;通过JetBrains下载并安装64位JRE(将与64位一起使用发射器)&#34;

这使我的项目再次工作,(在32位和64位版本中)。

答案 7 :(得分:1)

在gradle.propetries

中添加以下内容

org.gradle.java.home = $ {sdk_path}

例如:

org.gradle.java.home = C:\ Program Files(x86)\ Java \ jdk1.8.0_121

否则,如果您有内存堆警告。

还请在下面添加gradle.properties: org.gradle.jvmargs = -Xmx512m

答案 8 :(得分:0)

在我的情况下,我只去了设置,搜索了JDK,点击了Java Compiler,然后我注意到项目字节码版本丢失了。所以我只检查了1.8这是我的Java构建版本。那就是我。

enter image description here

答案 9 :(得分:0)

将jdk文件夹移动到intellij想要的文件夹C:\ Program Files \ JetBrains \ IntelliJ IDEA Community Edition 2016.3.4 \ jre

然后更改所需行中给出的.gradle文件夹中的值关闭项目然后重新启动

它对我有用....

答案 10 :(得分:0)

我通过重命名jre和jre64文件夹来解决这个问题,以防止想法使用它们并将jAVA_HOME设置为idea.bat文件中的其他JDK 1.8安装。

答案 11 :(得分:0)

如果您使用的是Gradle IDEA插件:

  1. 运行.\gradlew cleanidea idea
  2. 退出IntelliJ IDEA
  3. 启动IntelliJ IDEA,然后从主菜单中选择“导入项目”选项。
  4. 在被要求指定要导入的项目时导航到项目的主build.gradle文件。
  5. 然后,您将有机会将JDK设置为“项目默认”或另一个首选JDK。
  6. 单击“确定”继续,并观看Gradle同步并成功重新构建!

答案 12 :(得分:0)

我通过使用11.0.8-amzn而不是11.0.8-zulu来解决了这个问题。

花了我两个小时的时间才能使构建再次在IDE中工作