的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进程。
答案 0 :(得分:11)
我在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
提升为"26.0.2"
更新4/19/2018 从那时起就开始与butterknife分道扬山,因为它引起了比我使用的任何其他第三方更多的问题。此外,在完全Kotlin支持下,没有必要使用奶油刀
答案 1 :(得分:0)
似乎该问题不在app/build.gradle
中,而在butterknife-gradle-plugin
删除butterknife-gradle-plugin
答案 2 :(得分:0)
基于ElliotM的回答:
在我的图书馆项目中,此评论帮助了我(R2导入): https://github.com/JakeWharton/butterknife/issues/963#issuecomment-342547601
project' 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" }
}
module&build; 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'
答案 3 :(得分:0)
我的解决方案是在项目中升级gradle
来自:com.android.tools.build:gradle:3.1.4
至:com.android.tools.build:gradle:3.5.3