gpt4 book ai didi

AndroidX Room 未解析的父类(super class)型 RoomDatabase

转载 作者:IT老高 更新时间:2023-10-28 13:41:13 29 4
gpt4 key购买 nike

当我尝试构建我的应用时,我收到了这个编译错误:

Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
com.example.persistence.AppDatabase, unresolved supertypes: androidx.room.RoomDatabase

持久性设置在单独的 Android 模块(持久性)中。

build.gradle

// Kotlin StdLib
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

// Room
implementation "androidx.room:room-runtime:$androidXRoom"
kapt "androidx.room:room-compiler:$androidXRoom"
implementation "androidx.room:room-rxjava2:$androidXRoom"

ext.androidXRoom = "2.1.0-alpha02"

我尝试将 kotlin 版本、房间版本更改回 Android Arch Room,但它不起作用。我还尝试清理项目并使 Android Studio 的缓存无效。但它不起作用。

编辑:AppDatabase 源

package com.example.persistence.db

import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.example.persistence.post.PostDbDao
import com.example.persistence.post.PostDbEntity

@Database(entities = [PostDbEntity::class], version = 1)
abstract class AppDatabase : RoomDatabase() {

abstract fun favoritePostsDao(): PostDbDao

companion object {

var INSTANCE: AppDatabase? = null

fun getDatabase(context: Context): AppDatabase? {
if(INSTANCE == null) {
synchronized(AppDatabase::class) {
INSTANCE = Room.databaseBuilder(context.applicationContext, AppDatabase::class.java, "post_db").build()
}
}
return INSTANCE
}

fun destroy() {
INSTANCE = null
}
}

}

最佳答案

问题更可能在于您如何定义依赖项,RoomDatabase 是公共(public) API 的一部分,因为您的 AppDatabase 扩展了它,并且您可能在您的下游依赖项。但是 RoomDatabase 被声明为仅实现依赖项。这意味着该类在编译期间通常不适用于下游依赖项。

尝试将 "androidx.room:room-runtime:$androidXRoom" 更改为 api 配置,使其成为公共(public) API 的一部分。这应该可以解决您遇到的错误。

关于AndroidX Room 未解析的父类(super class)型 RoomDatabase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53152796/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com