无法find方法’com.android.build.gradle.api.BaseVariant.getOutputs()Ljava / util / List;’

的build.gradle

buildscript { ext.kotlin_version = '1.1.51' repositories { jcenter() mavenCentral() maven { url "https://jitpack.io" } } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' classpath 'me.tatarka:gradle-retrolambda:3.6.1' classpath 'com.google.gms:google-services:3.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } 

应用程序/的build.gradle

 buildscript { repositories { jcenter() } dependencies { classpath 'com.jakewharton:butterknife-gradle-plugin:8.7.0' } } android{ compileSdkVersion = 26 buildToolsVersion = "26.0.2" defaultConfig { minSdkVersion = 16 targetSdkVersion = 26 } ... applicationVariants.all { variant -> variant.outputs.all { output -> outputFileName = "newApkName.apk" } } } 

如何解决问题:

 Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'. 

这种意外错误的可能原因包括:Gradle的依赖性缓存可能已损坏(有时在网络连接超时后发生。)重新下载依赖项并同步项目(需要网络)Gradle构建过程(守护进程)的状态可能已损坏。 停止所有的Gradle守护进程可能会解决这个问题。 停止Gradle构建过程(需要重新启动)您的项目可能使用与项目中的其他插件或项目请求的Gradle版本不兼容的第三方插件。 在损坏的Gradle进程的情况下,您也可以尝试关闭IDE,然后杀死所有的Java进程。

我有同样的错误与gradle同步,特别是与butterknife绑定,我的解决方案通过解决

https://github.com/JakeWharton/butterknife/issues/963#issuecomment-339545297

tldr在您的项目构建文件…

 buildscript{ repositories { //other repos will likely exist here like jcenter and mavenCentral //add this closure maven { url "https://oss.sonatype.org/content/repositories/snapshots" } } dependencies { classpath 'com.jakewharton:butterknife-gradle-plugin:8.7.0' classpath 'com.android.tools.build:gradle:3.0.0' //change your version to 9.0.0-SNAPSHOT classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT' //.. other project level dependencies } } } 

还要确保你的所有项目都包括在内

 allproject{ repositories{ maven { //this url "https://oss.sonatype.org/content/repositories/snapshots" } } } 

然后没有与buildToolsVersions相关的问题是我的buildToolsVersions在您的应用程序生成文件"26.0.2"

似乎这个问题不是在app/build.gradle ,而是在butterknife-gradle-plugin

通过删除butterknife-gradle-plugin

根据ElliotM的回答:

  • Kotlin 1.2.10
  • Gradle 3.0.1
  • 构建工具版本27.0.3
  • 应用插件:’com.android.library’
  • 应用插件:’kotlin-android-extensions’
  • 应用插件:’kotlin-android’
  • 套用插件:’com.jakewharton.butterknife’

在我的图书馆项目这个评论帮助我(R2import): https : //github.com/JakeWharton/butterknife/issues/963#issuecomment-342547601

项目的build.gradle:

 buildscript { repositories { maven { url "https://oss.sonatype.org/content/repositories/snapshots" } google() jcenter() } dependencies { classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT' } } repositories { maven { url "https://oss.sonatype.org/content/repositories/snapshots" } } 

模块的build.gradle:

 apply plugin: 'com.jakewharton.butterknife' ... dependencies { compile 'com.jakewharton:butterknife:9.0.0-SNAPSHOT' kapt 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT' } 

这样你可以使用

 apply plugin: 'com.jakewharton.butterknife'