问题描述
日前学习GreenDAO数据库的使用,在配置gradle是遇到了如下错误:
Unable to find method 'org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;'
org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)
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.
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.
问题分析
分析如上的错误日志,明显是由于gradle和GreenDAO不适配导致的,查看了自己的gradle版本和GreenDAO版本,如下:
classpath "com.android.tools.build:gradle:4.1.0"
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // 添加插件 更好支持GreenDao
目前的我本地运行的条件是如下:
- Android Studio版本4.1
- gradle版本4.1.0
- GreenDAO版本3.2.2
尝试去降低gradle版本,结果是连降几个版本都不可用,只能去更改GreenDAO的版本。
在GreenDAO的官方更新日志上查询到了如下内容:
greenDAO更新日志
V3.3.0(2020-04-29)
支持Android Gradle插件3.3+ API。#942
支持Gradle 6.0。#1002
支持JDK 11 #1014
使用SQLCipher时更新了ProGuard R8规则。
防止使用冗长的ART“拒绝重新初始化”日志。#428
支持完全指定的@Transient批注名称。#657
公开Database.isOpen()。#700
允许对SQLCipher数据库进行自定义排序规则。#727
支持设置DatabaseErrorHandler。#839
在Mac和Windows上的同一软件包中生成DaoMaster。#880
联接的转义表名称。#888
从日志上看出,GreenDAO只有在版本为3.3.0时才能够支持Android Gradle3.3之上的插件,尝试将GreenDAO的版本更新至3.3.0,问题解决。
解决办法
将GreenDAO的版本更新至3.3.0。
网友评论