【问题标题】:Android: Room stopped working after upgrading to version 2.4.3Android:升级到版本 2.4.3 后 Room 停止工作
【发布时间】:2023-01-15 14:30:03
【问题描述】:

Android:Room 数据库在升级到 2.4.3 版本后停止工作。应用程序抱怨 AppDatabase_Impl 生成的文件。

AppDatabase_Impl.java:72: 错误: onCreate(SupportSQLiteDatabase) 在 <匿名 com.mobile_solutions.mycar.database.AppDatabase_Impl$1> 不能覆盖委托中的 onCreate(SupportSQLiteDatabase) protected void onCreate(SupportSQLiteDatabase _db) { ^ 试图分配较弱的访问权限;是公开的

应用数据库:

@Database(
    entities = [
        Service::class,
        Profile::class,
        WorkItem::class,
        Auto::class,
        Recommendation::class,
        TechVisit::class,
        NotificationSimple::class,
        Expense::class
               ], version = 85, exportSchema = false
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun myCarDao(): MyCarDao?
}

我收到这样的错误:

AppDatabase_Impl.java:72: error: onCreate(Support SQLite Database) in <anonymous com.mobile_solutions.mycar.database.AppDatabase_Impl$1> cannot override onCreate(SupportSQLiteDatabase) in Delegate
      protected void onCreate(SupportSQLiteDatabase _db) {
                 ^

试图分配较弱的访问权限;是公开的

怎么办?

【问题讨论】:

  • 您是否尝试过完全清理(或完全擦除构建文件夹)?也许 AppDatabase_Impl.java 从以前版本的构建中留在那里
  • 是的。几次。 Build -> Clean Project 而不是 Build -> Rebuild Project
  • 也许您更新运行时但不更新编译器(annotationProcessor)?
  • 你是什​​么意思?我更新了我的答案^^
  • @Selvin 我还删除了“build”文件夹而不是重建项目。同样的错误。

标签: android android-room


【解决方案1】:

我看到 very related question 7 个月前解决了:

要修复 Jetpack Compose 和 Paging 3 的这个错误,你只需要使用这个库

//ROOM
implementation "androidx.room:room-runtime:2.4.2"
kapt "androidx.room:room-compiler:2.4.2"
implementation "androidx.room:room-ktx:2.4.2"
implementation "androidx.room:room-paging:2.4.2"

// Paging 3.0
implementation 'androidx.paging:paging-compose:1.0.0-alpha15'

希望这会有所帮助或尝试遵循源头的其他一些建议!注意我看到这个答案是关于2.4.3具体来说,请查看 2022 年 12 月出现的相关问题的答案。

【讨论】: