用过GreenDao 的都晓得;他的强大不是咱们个人写个简单通过继承SQLiteOpenHelper实现数据库操作能比的;因为这根本不是一个量级上的啊,O(∩_∩)O哈哈~
话不多说:开搞…
AndoridStudio配置GreenDao报错:
Error:Unable to find method 'org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputFilePropertyBuilder;'.
如图:
两种在andorid studio配置GreenDao:
(个人未成功,给出解决方案。)
说明:降低版本后可以成功,具体看下面;
GreenDao库版本:3.2.2 ,配置步骤如下:
配置Gradle:
(注意:是工程下的build不是app下的build)
添加GreenDao插件支持,要添加的内容后面都已经加上了简单注释:
buildscript {
repositories {
jcenter()
mavenCentral() // 添加远程仓库地址
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // 添加插件 更好支持GreenDao
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
之后 右上角Sync Now ,AS会自动下载插件–>下载OK.
添加应用插件依赖;
apply plugin: ‘org.greenrobot.greendao’ // 添加应用依赖插件
添加库文件
compile ‘org.greenrobot:greendao:3.2.2’ // 添加库
按照官方的说法,我们无需任何其他配置,但是,数据库版本这个你得考虑下吧,当然,如果也不想考虑,那就使用默认的(默认版本为1)。
// 配置GreenDao基本参数
greendao {
schemaVersion 1 //当前数据库版本
}
配置参数说明(可以略过…):
schemaVersion:当前版本的数据库模式。这被OpenHelpers类用于在模式版本之间迁移。如果更改了实体/数据库模式,则必须增加该值。默认为1。
daoPackage:生成的Dao,DaoMaster和DaoSession的包名称。 默认为源实体的包名称。
targetGenDir:生成源应存储在的位置。 默认为构建目录( build / generated / source / greendao)中生成的源文件夹。
generateTests: 设置为true以自动生成单元测试。
targetGenDirTests: 应存储生成的单元测试的基本目录。默认为 src / androidTest / java。
配置完成后大致的项目(app中的bulid)内容如下:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // 添加应用依赖插件
android {
// 省略部分内容...
}
// 配置GreenDao基本参数
greendao {
schemaVersion 1 //当前数据库版本
}
dependencies {
// 省略部分内容...
compile 'org.greenrobot:greendao:3.2.2' // 添加库
}
OK;这种配置到这里就结束了;But 这种配置个人好像 报错了:
报错的代码就是刚开始时提过的:
Error:Unable to find method 'org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputFilePropertyBuilder;'.
给出一种个人参考后没有解决的方案:有哪位朋友有解决的;欢迎留言:拜谢。
网上的解决方式:
A:需要在官网:https://services.gradle.org/distributions/中下载了gradle-3.5-all版本;个人下载后解压放到C盘下的…gradle/wapper/dists下如下图:
并在Android studio中file->settings->build,execution,deployment->Gradie
如图:
这个时候重新bulid项目;结果就两种:
a:解决 : 很好、很 幸运。
b:没有解决并且出现新的报错如:
org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be ca...
这个报错解决一般:把后面的版本号改为之前你的做APP正常能跑的版本号就行。
But 改成之前运行的又出现那个错误了;好纠结…..
重点来了——个人的解决方式——
在“第一种配置”的基础上降低GreenDao版本即可正常运行
把:
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // 添加插件 更好支持GreenDao
改成:
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' // 添加插件 更好支持GreenDao
把:
compile ‘org.greenrobot:greendao:3.2.2’ // 添加库
降低版本为:
compile 'org.greenrobot:greendao:3.0.1'
之后 右上角Sync Now ,AS会自动下载插件–>下载OK.
—————–测试 完美运行—————————
首先 把“第一种配置”的内容全部去掉;恢复到 添加GreenDao前的状态:
然后直接在:项目(app)的build中直接添加:
apply plugin: 'org.greenrobot.greendao' // 添加应用依赖插件
// 配置GreenDao基本参数
greendao {
schemaVersion 1 //当前数据库版本
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.2.1'
//略......
//TJ:GreenDao 数据库加载库
compile 'org.greenrobot:greendao:3.0.1'
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
}
}
添加后的全部代码如:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // 添加应用依赖插件
android {
//略......
}
// 配置GreenDao基本参数
greendao {
schemaVersion 1 //当前数据库版本
}
dependencies {
//略......
//TJ:GreenDao 数据库加载库
compile 'org.greenrobot:greendao:3.0.1'
// compile 'org.greenrobot:greendao:3.2.2'
testCompile 'junit:junit:4.12'
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
}
}
说的有点多了O(∩_∩)O哈哈~
两种方式成功的实质是:降低了 GreenDao版本 ;
第一种配置:降低版本 ,可以正常运行;
第二种配置:和配置一同理;只是把所有的配置放在了项目app中了。
到这里 大家应该就能成功添加 GreenDao库到项目中;可以开启GreenDao 之旅了….