IntelliJ构建错误上下文不匹配

tim*_*109 53 java android intellij-idea android-studio

我想使用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]
Run Code Online (Sandbox Code Playgroud)

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

我已经配置了JDK和Android Tools,如下所示:

项目 SDK2 SDK1

Hug*_*ghG 80

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

意见

我的问题与你的问题类似,因为Wanted上下文中包含javaHome了嵌入在IDEA安装文件夹中的JRE的路径,并且Actual上下文将它作为我路径上的第一个Java版本.我在网上发现了几个类似的错误报告,但没有一个IDEA嵌入了JRE作为Wanted版本.

WantedJava版本正好是一个全系统的安装JRE的,而不是我为项目配置的JDK,也不需要设置的值JAVA_HOME,这让我十分可疑(和困惑).重新排序我的路径导致它使用另一个"不需要的"Java版本,所以它显然使用路径来选择运行什么,但不清楚为什么.我无法让IntelliJ的嵌入式JRE成为我的首选,因为出于各种原因我需要将它作为JDK,因此我需要另一种解决方案.

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

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

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

进行此更改后,配置按预期构建,我观察到只java.exe启动了一个,使用与从UI中的"Gradle"面板运行任务时相同的JDK路径.

  • 不是一百万年我才能想到这一点.就是这样.谢谢! (6认同)

Per*_*ega 42

我使用idea64.exe而不是idea.exe解决了这个问题

在此输入图像描述


小智 28

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

  • 试过其他解决方案,这是唯一一个为我工作的解决方案.当我升级到Intellij 2016.3.1并选择64位JRE时,问题就出现了.在那之后,我无法让Gradle不想要那个JRE. (3认同)

小智 14

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


Gar*_*Dan 6

对于 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) 配合使用。


Abd*_*han 5

我有完全相同的问题,这对我有用.

我从IntelliJ 项目的根目录中删除了.idea.project文件.重新启动IntelliJ并再次打开我的项目.