./gradlew 更新 Android Studio 后出现命令行错误

./gradlew command line error after updating Android Studio

更新Android studio 到3.2,并对gradle 版本和gradle 插件做了相应的修改后,我不能再运行 ./gradlew 从命令行运行而没有出现错误。不过,我仍然可以同步 gradle 并从工具栏构建应用程序。我得到的错误是:

> Failed to apply plugin [id 'com.android.application']
> Could not create an instance of type com.android.build.gradle.AppExtension_Decorated.
  > Could not create an instance of type com.android.build.gradle.internal.api.DefaultAndroidSourceSet.
     > Uninitialized object exists on backward branch 70
       Exception Details:
         Location:
           com/android/build/gradle/internal/scope/BuildArtifactsHolder.newArtifact(Lcom/android/build/api/artifact/BuildableArtifact;)Lcom/android/build/gradle/internal/scope/BuildArtifactsHolder$BuildableArtifactData; @119: goto
         Reason:
           Error exists in the bytecode

如果能帮助您理解问题所在,我们将不胜感激。我正在使用 Android Studio 中嵌入的 jdk,并尝试删除各种文件夹,如 .gradle、build、.idea 并重新导入项目,但似乎没有任何解决办法。如果相关的话,我正在使用 Kotlin。不太确定如何调试它。

gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip

项目根的相关部分build.gradle

buildscript {
    repositories {
        google()
        jcenter()
    }
dependencies {
    classpath 'com.android.tools.build:gradle:3.2.0-alpha08'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.31"
}

尝试使用 Invalidate Caches/Restart 重新启动 Android Studio。

尝试在环境变量中加入gradle:set PATH=d:\tools\gradle\bin;%PATH% 您还可以定义一个名为 GRADLE_HOME.

的新环境变量

再次检查安装步骤。 https://www.javacodegeeks.com/2013/04/how-to-install-gradle-2.html

事实证明,虽然 Android Studio 附带 jdk 的嵌入式版本,但 gradle 包装器默认情况下不使用该版本的 jdk 嵌入式在 Android Studio 中,而是使用您在系统上安装的任何 JDK。在我的情况下,那个版本太旧了,所以我只是用 brew 将它更新到最新版本的 java8,我的 ./gradlew 任务现在工作正常。 注意:最初 brew 将 java 更新为 java10,这没有用,所以我不得不专门安装最新的 java8.