android roomDataBase 报错: Schema export directory is not provided

157 阅读1分钟

异常

警告: Schema export directory is not provided to the annotation processor so we cannot export the schema. You can either provide room.schemaLocation annotation processor argument OR set exportSchema to false. public abstract class AppDataBase extends androidx.room.RoomDatabase {

原因

数据库初始化时,配置了导出json:exportSchema = true, 但是未设置导出脚本路径

@Database(
    entities = arrayOf(
        OrderOffline::class,
        OrderDetailsOffline::class,
        EpcByOrderDetailsOffline::class
    ),
    version = 1, exportSchema = true,
)
abstract class AppDataBase : RoomDatabase() {

解决

app目录下bulid.gradle,指定输出到项目根目录下的/schemas, schemas目录没有,手动创建一个。

kapt {
    arguments {
        arg("room.schemaLocation", "$projectDir/schemas")
    }
}

项目启动时:自动生成版本1的sql脚本。

image.png