Kotlin中使用greendao
我就是浪一下,想用Kotlin使用GreenDao,然后就莫名其妙的出现了一堆垃圾bug,这里mark一下。PS:不折腾其实就没那么多问题。
1. Entity类使用Kotlin
别想了亲,XXDao等中间文件直接无法生成。吐血了。
2. Kotlin代码编写PropertyConverter
也就是@Converter这玩意等于没用了,直接编译报错。
Execution failed for task ‘:testgreendao:greendao’.
Inner class com.heima.testgreendao.Note.NoteTypeConverter in Note has to be static. Only static classes are supported if converters or custom types (@Convert) are defined as inner classes.
3. Kotlin文件找不到XXDao
中间文件找不到,原因是Kotlin只认领source的代码文件夹→默认目录(貌似是build),其他文件夹的java文件找不到。所以就emmmm。。。
解决方法就是别偷懒,配一下中间文件路径。
greendao {
schemaVersion 1 //数据库版本
targetGenDir 'src/main/java' //指定生成代码的目录
daoPackage //生成代码到具体包下
}
4. GreenDao生成目录修改无效
greendao {
schemaVersion 1 //数据库版本
targetGenDir 'src/main/java/greenbuild' //指定生成代码的目录
daoPackage //生成代码到具体包下
}
然而生成的文件夹并不是我们想的那样子。。。。
看好我上面的注释。。。。其实当初我也没怎么看的明白。
greendao {
schemaVersion 1 //数据库版本
targetGenDir 'src/main/java' //指定生成代码的目录
daoPackage 'com.heima.testgreendao.greenbuild' //生成代码到具体包下
}
com.heima.testgreendao.greenbuild
这一行很关键,就是你生成的文件夹在src中的位置。。。我是真的蠢。。。