警告:任何处理器都无法识别以下选项:'[room.schemaLocation]'

时间:2017-08-31 10:53:52

标签: java android android-studio android-gradle

我收到了这个警告:

警告:任何处理器都无法识别以下选项:'[room.schemaLocation]'

我已经检查过以下链接解决方案,这似乎是一个不同的问题。 我在Android项目上使用Android Studio IDE时收到错误。在更改xml中的绑定变量之后弹出错误(由于Unboxing警告而将类型从Integer更改为int,并且我实际上只需要int)。

已经检查过以下解决方案:

NetBeans bug 233098

getting-android-studio-gradle-and-android-annotations-working-together

annotationprocessor-option-not-recorgnized-by-any-processor

3 个答案:

答案 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() {