Android Studio 3.0 – 无法find方法’com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava / util / List’

试图用Android Studio 3.0 Canary 1启动一个新的Kotlin项目显示这个错误。 全迹:

错误:无法find方法’com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava / util / List;’。 这种意外错误的可能原因包括:

  • Gradle的依赖关系缓存可能已损坏(有时发生在网络连接超时之后)。重新下载依赖项并同步项目(需要网络)
  • Gradle构建过程(守护进程)的状态可能已损坏。 停止所有的Gradle守护进程可能会解决这个问题。 停止Gradle构建过程(需要重新启动)
  • 您的项目可能使用与项目中的其他插件或项目请求的Gradle版本不兼容的第三方插件。

在损坏的Gradle进程的情况下,您也可以尝试关闭IDE,然后杀死所有的Java进程。

我已经尝试了前两个选项,第三方插件是默认的。

gradle-wrapper.properties

#Thu May 18 08:36:52 BST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip 

的build.gradle

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.1.2-3' repositories { maven { url 'https://maven.google.com' } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-alpha1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url 'https://maven.google.com' } mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir } 

我自己并没有触及任何这些值,它们被保留为默认值。 创建一个非Kotlin新项目没有这个问题。

在我的build.gradle改变

ext.kotlin_version = '1.1.2-3'

ext.kotlin_version = '1.1.2-4'

解决这个问题

(截至2017年11月,目前的Kotlin版本是1.1.60)

它为我工作

使用8.4.0版本

  classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0' 

对于Java

只要删除

classpath 'me.tatarka:gradle-retrolambda:3.7.0'

butterknife版本降级到8.4.0

classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'

不要忘记删除

apply plugin: 'me.tatarka.retrolambda'

从应用程序级别构建gradle。

这是Android Studio Preview 3.0中的一个已知问题 :

如果你看到这个错误,可能你有一个预先存在的Kotlin插件版本,它与Android Studio 3.0中新的Android插件for Gradle不兼容。 解决办法是删除旧的Kotlin插件。

打开你的项目级build.gradle文件并findext.kotlin_version 。 应该是1.1.2-4(或更高)。 如果显示的是旧版本,则需要删除旧的Kotlin插件,以免妨碍Android Studio 3.0附带的版本。

在Windows上,它应该位于

C:\Users\user_name\AndroidStudio_version\config\plugins\Kotlin\

在Mac上,看看

~/Library/Application\ Support/AndroidStudio_version/Kotlin/

更新您的kotlin版本到最新版本:

 ext.kotlin_version = '1.1.2-4' //currently it's the latest version 

那么你可能会面临更多的错误,所以在再次同步之前,请确保buildToolsVersion是“26.0.2”或更高。

在我的情况下,这个问题是因为我们正在应用butterknife-gradle-plugin而引起的。 升级到8.8.1并没有解决这个问题,但当然删除它。

build.gradle属于应用程序,所以我甚至不知道为什么我们使用该插件(我是新来的项目)