Gradle 错误:无法初始化类 org.codehaus.groovy.runtime.InvokerHelper

Jos*_*nak 5 java groovy gradle

我需要在 Gradle 中查看我的依赖项以解决多个 SLF4J 绑定的问题。
但是,当我运行“gradle dependencies”时出现错误:

无法初始化类 org.codehaus.groovy.runtime.InvokerHelper

在堆栈溢出Android Studio 无法初始化类 org.codehaus.groovy.runtime.InvokerHelper 中的类似问题中
,建议

  1. 安装 java jdk-14
  2. 升级到 6.3 版

我在 IntelliJ 中的两个地方将 jdk 更改为 14:

  1. 文件 -> 项目结构 -> 项目 -> 项目 SDK
  2. 首选项 -> Gradle -> Gradle JVM

我尝试从命令行更新 gradle:'gradle wrapper --gradle-version 6.3' 并得到相同的错误:

无法初始化类 org.codehaus.groovy.runtime.InvokerHelper

然后我按照https://github.com/gradle/gradle/issues/10248 的说明将文件“gradle-wrapper.properties”中的字段“distributionUrl”更改为“gradle-6.3” 。

我尝试了 jdk 和 gradle 版本的各种组合,但似乎没有任何效果。

tim*_*tes 5

所以从你的仓库中,如果你有这样的 gradle-wrapper.properties:

? cat gradle/wrapper/gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Run Code Online (Sandbox Code Playgroud)

在第一次编译时,Gradle 会告诉你:

  build file '/Users/tim/Code/Java/brobotREST/build.gradle': 36:
     all buildscript {} blocks must appear before any plugins {} blocks in the script
Run Code Online (Sandbox Code Playgroud)

所以如果你把这个buildscript部分移到build.gradle 文件的顶部,它似乎一切正常

我得到:

? ./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:          14 (Azul Systems, Inc. 14+36)
OS:           Mac OS X 10.15.4 x86_64
Run Code Online (Sandbox Code Playgroud)