首页 > 解决方案 > IntelliJ 无法导入 gradle 项目

问题描述

IntelliJ 无法导入我的 Gradle 项目。

构建窗口显示恶魔在右侧启动,在左侧仅显示

<project-name> failed <timestamp>

确实没有解决任何依赖关系,也没有设置源文件夹。

我该如何调试/修复这个?

标签: gradleintellij-idea

解决方案


第一步应该是在命令行上构建项目并确保它可以工作。

然后找到 IntelliJ 的日志文件:Help -> Show Log in Finderdoes it for me on Mac OS,我猜其他平台上也有类似的东西。

我的日志显示:

2021-03-16 11:08:31,370 [222013096]   INFO - .project.GradleProjectResolver - Gradle project resolve error 
org.gradle.tooling.GradleConnectionException: Could not run phased build action using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-6.8.3-bin.zip'.
    at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:55)
    at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
    at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:43)
    at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:69)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.gradle.launcher.daemon.client.DaemonConnectionException: 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=/Users/jschauder/.sdkman/candidates/java/current,daemonRegistryDir=/Users/jschauder/.gradle/daemon,pid=981,idleTimeout=null,priority=NORMAL,daemonOpts=-Dfile.encoding=UTF-8,-Duser.country=GB,-Duser.language=en,-Duser.variant]
Actual: DefaultDaemonContext[uid=ad74fb8f-4b76-4109-9780-e222fddedd94,javaHome=/Users/jschauder/.sdkman/candidates/java/8.0.282-zulu/zulu-8.jdk/Contents/Home,daemonRegistryDir=/Users/jschauder/.gradle/daemon,pid=89910,idleTimeout=10800000,priority=NORMAL,daemonOpts=-Dfile.encoding=UTF-8,-Duser.country=GB,-Duser.language=en,-Duser.variant]

重要的部分是:

Wanted: DefaultDaemonContext[uid=null,javaHome=/Users/jschauder/.sdkman/candidates/java/current,daemonRegistryDir=/Users/jschauder/.gradle/daemon,pid=981,idleTimeout=null,priority=NORMAL,daemonOpts=-Dfile.encoding=UTF-8,-Duser.country=GB,-Duser.language=en,-Duser.variant]
Actual: DefaultDaemonContext[uid=ad74fb8f-4b76-4109-9780-e222fddedd94,javaHome=/Users/jschauder/.sdkman/candidates/java/8.0.282-zulu/zulu-8.jdk/Contents/Home,daemonRegistryDir=/Users/jschauder/.gradle/daemon,pid=89910,idleTimeout=10800000,priority=NORMAL,daemonOpts=-Dfile.encoding=UTF-8,-Duser.country=GB,-Duser.language=en,-Duser.variant]

即 gradle 恶魔使用与 IntelliJ 期望的不同的 JDK 运行。

要解决这个问题,你

  1. 进入 Intellij 的偏好,
  2. 搜索“gradle”
  3. 并找到“Gradle JVM”设置并使用日志中“Actual”行中的 JDK 路径。就我而言/Users/jschauder/.sdkman/candidates/java/8.0.282-zulu/zulu-8.jdk/Contents/Home

之后,导入项目工作得很好。


推荐阅读