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