我收到了这个警告:
警告:任何处理器都无法识别以下选项:'[room.schemaLocation]'
我已经检查过以下链接解决方案,这似乎是一个不同的问题。 我在Android项目上使用Android Studio IDE时收到错误。在更改xml中的绑定变量之后弹出错误(由于Unboxing警告而将类型从Integer更改为int,并且我实际上只需要int)。
已经检查过以下解决方案:
getting-android-studio-gradle-and-android-annotations-working-together
答案 0 :(得分:1)
我尝试从应用程序build.gradle文件中删除以下内容:
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":
"$projectDir/schemas".toString()]
}
}
然后,我跑了"重建",再次添加了相同的段,错误消失了。 我不知道为什么它解决了这个问题,但确实如此。
注意:重建\清除而不删除上面的gradle定义对我来说不起作用,所以在重建之前必须将其删除并重新添加。
答案 1 :(得分:1)
我在添加了 room 的多模块项目中也遇到了类似的问题。对于我的项目,问题是由于将我的const http = require("http");
派生类添加到库模块中,但是配置了我的应用模块的RoomDatabase
。
解决方案是配置包含build.gradle
派生类的模块的build.gradle
。
解决方案有3个主要部分:
1。。您的RoomDatabase
派生类(在本示例中为RoomDatabase
)
AppDatabase
2。。在包含@Database(entities = arrayOf(SomeWidgetEntity::class), version = 50)
abstract class AppDatabase : RoomDatabase() {
//your code goes here
}
的模块的build.gradle
文件中,将以下内容添加到AppDatabase
部分。
defaultConfig{}
3。。在defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":
"$projectDir/schemas".toString()]
}
}
}
部分的 SAME build.gradle
文件中,添加 room em> 编译器。
dependencies{}
答案 2 :(得分:-2)
问题是架构已经创建了。您可以通过增加数据库版本或使用(例如)
进行完全卸载来修复它adb uninstall your.app
这将删除您的应用,包括您的数据库。在此房间重新创建数据库之后。
另一个有效的解决方案是通过增加数据库帮助程序类中的ID来增加数据库版本
@Database(entities = ..., version = <increase_version>)
abstract class YourDB : RoomDatabase() {