簡體   English   中英

LocalDatabase_Impl 不存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM