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

时间:2018-03-30 10:08:03

标签: android android-studio gradle android-studio-3.0

将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"
}

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试将gradle添加到环境变量:set PATH = d:\ tools \ gradle \ bin;%PATH% 您还可以定义一个名为GRADLE_HOME的新环境变量。

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