Whi*_*ron 8 android android-room
哪个 gradle 任务/Studio 功能生成 Room 架构文件?是否存在跳过文件生成的情况?
几周前,我进行了一些更改,本应更改架构文件,但该文件并未更改。现在我做了一个新的更改(删除了一个实体,包括 Room 数据库类中实体的引用),现在所有更改都出现在架构文件中。
-> 为什么现在生成了架构文件,但在过去几天/几周的众多构建之一中却没有生成?
当我在构建项目之前将其删除时,该架构似乎会更可靠地生成。但这显然不是强制性的,因为当我今天删除该实体时它也起作用......
我读了这个问题,但我的 build.gradle 中已经有以下几行:
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
Run Code Online (Sandbox Code Playgroud)
def room_version = "2.1.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)
如果 Room “看到”您更改了@Entity类中的某些内容(可能会导致新模式)和/或您更改了 中的某些内容@Database(例如更新版本、添加或删除实体等),则会生成新的模式 JSON 文件。
例如,重命名带@Entity注释的类中的字段应该会导致生成文件。同时添加一个新字段@Ignore不应该。
实际生成架构的 Gradle 任务是Kotlin 中的compileDebugJava或kaptDebugKotlinif (均用于调试变体)。Room 是一个注释处理器,因此它在编译期间完成工作,分析代码、生成新代码并生成架构 JSON 文件。
| 归档时间: |
|
| 查看次数: |
3340 次 |
| 最近记录: |