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

我收到此警告:

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

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

已检查以下解决方案:

NetBeans bug 233098

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

注释处理器选项不被任何处理器识别


答案 1

我尝试从应用程序 build.gradle 文件中删除以下内容:

 javaCompileOptions {
    annotationProcessorOptions {
        arguments = ["room.schemaLocation":
                             "$projectDir/schemas".toString()]
    }
}

然后,我运行“重建”,再次添加相同的段,错误消失了。我不知道为什么它解决了这个问题,但它做到了。

注意:在不删除上述 gradle 定义的情况下重建\清理对我不起作用,因此在重建之前必须将其删除并再次添加。


答案 2

我在添加空间的多模块项目中遇到了类似的问题。对于我的项目,问题是由于将我的派生类添加到库模块,但配置了我的应用程序模块。RoomDatabasebuild.gradle

解决方案是配置包含派生类的模块。build.gradleRoomDatabase

该解决方案有 3 个主要部分:

1. 您的派生类(在本例中)RoomDatabaseAppDatabase

@Database(entities = arrayOf(SomeWidgetEntity::class), version = 50)
abstract class AppDatabase : RoomDatabase() {
  //your code goes here
}

2. 在包含的模块文件中,将以下内容添加到该部分。build.gradleAppDatabasedefaultConfig{}

defaultConfig {

    javaCompileOptions {
        annotationProcessorOptions {
        arguments = ["room.schemaLocation":
                     "$projectDir/schemas".toString()]
        }
    }

}

3. 在同文件中的部分中,添加房间编译器的依赖项。build.gradledependencies{}

dependencies {

    //for kotlin based projects (where $room_version is the version of room you're using)
    kapt "android.arch.persistence.room:compiler:$room_version"
    //for java based projects
    annotationProcessor "android.arch.persistence.room:compiler:$room_version"

}

推荐