[英]LocalDatabase_Impl does not exist
@Database(entities = [AepsBankTokenModel::class], version = 1)
abstract class LocalDatabase : RoomDatabase() {
abstract fun aepsBankTokenDao(): AepsBankTokenDao
companion object {
private var DATABASE_INSTANCE: LocalDatabase? = null
private const val DB_NAME = "wla.db"
fun getInstance(): LocalDatabase? {
if (DATABASE_INSTANCE == null) {
synchronized(LocalDatabase::class) {
DATABASE_INSTANCE = Room.databaseBuilder(
AepsSdk.instance?.context!!,
LocalDatabase::class.java, DB_NAME).allowMainThreadQueries().build()
}
}
return DATABASE_INSTANCE
}
}
}
@Dao
interface AepsBankTokenDao {
@Insert (onConflict = OnConflictStrategy.REPLACE)
fun insert(aepsBankTokenModel: AepsBankTokenModel)
@Update
fun update(aepsBankTokenModel: AepsBankTokenModel)
@Delete
fun delete(aepsBankTokenModel: AepsBankTokenModel)
@Query("delete from aeps_bank_token_model")
fun deleteAllNotes()
@Query("select * from aeps_bank_token_model ")
fun getAllAepsBankToken(): LiveData<List<AepsBankTokenModel>>
@Query("SELECT * FROM `aeps_bank_token_model` WHERE bankId == :bankId AND userId == :userId ")
fun getAepsBankTokenObj(bankId : String, userId : String ): AepsBankTokenModel
}
@Entity(tableName = "aeps_bank_token_model")
data class AepsBankTokenModel(
@SerializedName("AT")
var accessToken: String,
@SerializedName("RT")
var refreshToken: String,
@SerializedName("BName")
var bankName: String,
@SerializedName("BId")
var bankId: String,
@SerializedName("createdBy")
var userId: String,
@SerializedName("ATExp")
var accessTokenExpiry: String,
@SerializedName("RTExp")
var refreshTokenExpiry: String,
var createdAt: String,
var modifiedAt: String,
@PrimaryKey(autoGenerate = true) var id: Int? = null)
以上所有文件都是在一个模块中创建的,并使用 aar 文件访问另一个模块,但每次它都会给出以下错误
2022-05-15 23:39:04.895 15276-15276/com.a W/System.err: java.lang.RuntimeException: 找不到 com.a.sdk.database.LocalDatabase 的实现。 LocalDatabase_Impl 不存在 2022-05-15 23:39:04.895 15276-15276/com.a W/System.err: at androidx.room.Room.getGeneratedImplementation(Room.java:97) 2022-05-15 23:39 :04.896 15276-15276/com.a W/System.err: at androidx.room.RoomDatabase$Builder.build(RoomDatabase.java:1358) 2022-05-15 23:39:04.896 15276-15276/com.a W /System.err:在 com.a.database.LocalDatabase$Companion.getInstance(LocalDatabase.kt:27) 2022-05-15 23:39
我使用了以下依赖项
实现 'androidx.room:room-runtime:2.3.0' annotationProcessor 'androidx.room:room-compiler:2.3.0'
如果我用 kapt 替换 annotationProcessor 它会给出以下错误app:kaptDebugKotlin
去掉这些abstract
的关键字,就不用担心没有实现了。
使用 Room 注释注释的类必须是可实例化的,但abstract
类不是。
问题出在您的build.gradle
文件中,您应该启用kotlin-kapt
并为您的dependency
项添加room
,如下所示:
plugins {
id 'kotlin-kapt'
}
android {
...
}
dependencies {
...
implementation("androidx.room:room-runtime:2.4.2")
kapt("androidx.room:room-compiler:2.4.2")
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.