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

问题描述 投票:0回答:2

我收到此警告:

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

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

已检查以下解决方案:

NetBeans 错误 233098

让-android-studio-gradle-和-android-annotations-一起工作

任何处理器都无法识别注释处理器选项

java android android-studio android-gradle-plugin
2个回答
19
投票

我在添加了 room 的多模块项目中遇到了类似的问题。对于我的项目,问题是由于将我的

RoomDatabase
派生类添加到库模块,但配置我的应用程序模块的
build.gradle
引起的。

解决方案是配置包含

build.gradle
派生类的模块的
RoomDatabase

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

1. 您的

RoomDatabase
派生类(本例中为
AppDatabase

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

2. 在包含

build.gradle
的模块的
AppDatabase
文件中,将以下内容添加到
defaultConfig{}
部分。

defaultConfig {

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

}

3.build.gradle 部分的

SAME
dependencies{}
文件中添加 room 编译器的依赖项。

dependencies {

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

}

17
投票

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

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

然后,我运行“rebuild”,再次添加相同的段,错误消失了。 我不知道为什么它解决了问题,但它确实解决了。

注意:重建

© www.soinside.com 2019 - 2024. All rights reserved.