我的應用程式運行順利,但我現在收到此錯誤。我在 Kapt Debug Kotlin 中遇到錯誤。我在 gradle 檔案中有更新版本的依賴項。仍然面臨這個問題。如何解決?我在某處看到了你的房間資料庫,dao和資料類。仍然無法弄清楚是什么問題。
錯誤顯示此檔案
ROOM DATABASE
@Database(entities = [Transaction::class], version = 1, exportSchema = false)
abstract class MoneyDatabase : RoomDatabase(){
abstract fun transactionListDao():transactionDetailDao
companion object {
// Singleton prevents multiple instances of database opening at the
// same time.
@Volatile
private var INSTANCE: MoneyDatabase? = null
fun getDatabase(context: Context): MoneyDatabase {
// if the INSTANCE is not null, then return it,
// if it is, then create the database
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
MoneyDatabase::class.java,
"transaction_database"
).build()
INSTANCE = instance
// return instance
instance
}
}
}
}
道
@Dao
interface transactionDetailDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(transaction : Transaction)
@Delete
suspend fun delete(transaction : Transaction)
@Update
suspend fun update(transaction: Transaction)
@Query("SELECT * FROM transaction_table ORDER BY id ASC")
fun getalltransaction(): LiveData<List<Transaction>>
}
資料類
enum class Transaction_type(){
Cash , debit , Credit
}
enum class Type(){
Income, Expense
}
@Entity(tableName = "transaction_table")
data class Transaction(
val name : String,
val amount : Float,
val day : Int,
val month : Int,
val year : Int,
val comment: String,
val datePicker: String,
val transaction_type : String,
val category : String,
val recurring_from : String,
val recurring_to : String
){
@PrimaryKey(autoGenerate = true) var id :Long=0
}
uj5u.com熱心網友回復:
錯誤已解決。我使用的是 kotlin 1.6.0 版。我將其減少到 1.4.32。據我了解,上面(最新)版本的 Kotlin 以及 Room 和協程不能很好地作業。
uj5u.com熱心網友回復:
我相信您的問題是由于無意中使用了不正確的類,可能的罪魁禍首是 Transaction 因為它也是 Room 類
也許在transactionDetailDao 中(雖然它可能在別處)
看看你是否有import androidx.room.Transaction?(或任何其他具有交易的進口)?
如果是,請洗掉或注釋掉匯入
作為一個例子,和: -

并注釋掉匯入:-

從 github 匯入,有一個播放問題,顯然與協同程式有關。注釋掉在道中:-
@Dao
interface transactionDetailDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(transaction : Transaction)
@Delete
suspend fun delete(transaction : Transaction)
@Update
suspend fun update(transaction: Transaction)
@Query("SELECT * FROM transaction_table ORDER BY id ASC")
fun getalltransaction(): LiveData<List<Transaction>>
}
編譯正常并運行并播放,例如:-

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/363885.html
標籤:数据库 安卓工作室 android-room 道 卡普特
上一篇:如何為PopupMenu提供圓角
