无法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'