1.在使用 Android Room数据库的时候,出现以下错误:
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.
2.解决方案有两种:
1).给RoomDatabase设置exportSchema注解为false。默认是true
@Database(entities = [TableItem::class], version = 1,exportSchema = false)
abstract class AppDataBase : RoomDatabase() {
abstract fun tableItemDao(): TableItemDao
2)在app的build.gradle中添加(推荐)
有针对java环境和kotlin环境的不同配置语法。看个人环境配置,两者只可存在一种写法。本人的环境是kotlin环境的,所以使用kotlin环境的写法。开始时用java环境的写法,结果一直报错,改成kotlin后才成功。
defaultConfig {
applicationId "XXX"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//指定room.schemaLocation生成的文件路径, java环境(两者选一,看项目环境)
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
//指定room.schemaLocation生成的文件路径, kotlin环境 (两者选一,看项目环境)
kapt {
arguments {
arg("room.schemaLocation", "$projectDir/schemas")
}
}
}