今天终于把Android Studio升级到了3.0(别怪我太懒,是因为在网上看到升级后会有很多坑,但没办法,GitHub上现在都是3.0的版本),升级之后果然出现问题了:
Error:Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'.
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li><li>Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.</li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.
什么意思呢?
从第一行Error看显然是Gradle出现了问题,我的build.gradle是这样的
buildscript {
repositories {
mavenCentral()
google()
jcenter()
maven { url "https://jitpack.io" }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
那看来只能是ButterKnife出了问题,经过查阅了很久各种文档之后发现是Android Studio 3.0和ButterKnife冲突不兼容导致的,GitHub上已经有了这个问题,JakeWharton
大神做了相关解释,暂时的解决方法是降至8.4.0的版本。