我正在使用Android数据库组件室
我已经配置了一切,但当我编译时,Android Studio给我这个警告:
架构导出目录没有提供给注释处理器,因此 我们不能导出模式。你可以提供 房间。schemaLocation注释处理器参数OR集 exportSchema为false。
根据我的理解,这是DB文件将被定位的位置
它如何影响我的应用程序?这里的最佳实践是什么?我是否应该使用默认位置(false值)?
我正在使用Android数据库组件室
我已经配置了一切,但当我编译时,Android Studio给我这个警告:
架构导出目录没有提供给注释处理器,因此 我们不能导出模式。你可以提供 房间。schemaLocation注释处理器参数OR集 exportSchema为false。
根据我的理解,这是DB文件将被定位的位置
它如何影响我的应用程序?这里的最佳实践是什么?我是否应该使用默认位置(false值)?
当前回答
在构建中。gradle文件,添加到defaultConfig部分(在android部分下)。这将把模式写到项目文件夹的schemas子文件夹中。
javaCompileOptions {
annotationProcessorOptions {
arguments += ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
是这样的:
// ...
android {
// ... (compileSdkVersion, buildToolsVersion, etc)
defaultConfig {
// ... (applicationId, miSdkVersion, etc)
javaCompileOptions {
annotationProcessorOptions {
arguments += ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
}
// ... (buildTypes, compileOptions, etc)
}
// ...
其他回答
如果你像我一样最近移动某些类到不同的包等。你使用android导航。确保将argType更改为与您的新包地址匹配。 来自:
app:argType="com.example.app.old.Item"
to:
app:argType="com.example.app.new.Item"
致Kotlin KSP:
ksp {
arg('room.schemaLocation', "$projectDir/schemas")
}
卡普特 { 参数 { arg(“room.schemaLocation”, “$projectDir/schemas”) } }
在构建中。gradle文件,添加到defaultConfig部分(在android部分下)。这将把模式写到项目文件夹的schemas子文件夹中。
javaCompileOptions {
annotationProcessorOptions {
arguments += ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
是这样的:
// ...
android {
// ... (compileSdkVersion, buildToolsVersion, etc)
defaultConfig {
// ... (applicationId, miSdkVersion, etc)
javaCompileOptions {
annotationProcessorOptions {
arguments += ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
}
// ... (buildTypes, compileOptions, etc)
}
// ...
芬兰湾的科特林?开始吧:
android {
// ... (compileSdkVersion, buildToolsVersion, etc)
defaultConfig {
// ... (applicationId, miSdkVersion, etc)
kapt {
arguments {
arg("room.schemaLocation", "$projectDir/schemas")
}
}
}
buildTypes {
// ... (buildTypes, compileOptions, etc)
}
}
//...
不要忘记插件:
应用插件:“科特林-卡皮特”
有关kotlin注释处理器的更多信息,请访问: 芬兰湾的科特林医生