今天将Gradle
的版本从4.4
升级到5.1.1
之后,编译工程时遇到了下面的报错:
> Failed to notify project evaluation listener.
> org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;
增加--stacktrace
重新编译,打印了如下信息:
Caused by: java.lang.NoSuchMethodError: org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;
at org.greenrobot.greendao.gradle.Greendao3GradlePlugin.createGreendaoTask(Greendao3GradlePlugin.kt:59)
at org.greenrobot.greendao.gradle.Greendao3GradlePlugin.access$createGreendaoTask(Greendao3GradlePlugin.kt:14)
at org.greenrobot.greendao.gradle.Greendao3GradlePlugin$apply$1.execute(Greendao3GradlePlugin.kt:47)
at org.greenrobot.greendao.gradle.Greendao3GradlePlugin$apply$1.execute(Greendao3GradlePlugin.kt:14)
从上面的信息可以看出是GreenDao
的问题,上网看了一下其他人的解决办法,发现很多是降低Gradle
的版本,我自己是不想这么做的,所以检查了一下项目里关于GreenDao
的引用:
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
// GreenDao3依赖
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
// module中的依赖
dependencies {
// GreenDao
api 'org.greenrobot:greendao:3.2.2'
}
显然,greendao-gradle-plugin
和greendao
版本号不一致,将它们的版本统一成3.2.2
,重新编译,就可以通过了。