1. 問題
Android Studioでアプリをビルドすると、 Query method parameters should either be a type that can be converted into a database column or a List~
エラーでコンパイルが失敗しました。
../app/build/tmp/kapt3/stubs/debug/com/example/memorynotes/framework/db/NoteDao.java:18:
error: Query method parameters should either be a type that can be converted into a database column or
a List / Array contains such type. You can consider adding a Type Adapter for this.
kotlin.coroutines.Continuation<? super com.example.memorynotes.framework.db.NoteEntity> continuation);
^
コンパイルエラーが発生したのはRoomのDAOですが、文法的な面でコードが間違った部分はないようです。
@Dao
interface NoteDao {
@Insert(onConflict = REPLACE)
suspend fun addNoteEntity(noteEntity: NoteEntity)
@Query("SELECT * FROM note WHERE id = :id")
suspend fun getNoteEntity(id: Long): NoteEntity?
@Query("SELECT * FROM note")
suspend fun getAllNoteEntities(): List<NoteEntity>
@Delete
suspend fun deleteNoteEntity(noteEntity: NoteEntity)
}
2. 解決: 最新バージョンに変更
問題の原因は、プロジェクトのGradleに宣言された「Room 2.2.2」バージョンが他の依存関係と競合してエラーが発生したようです。
dependencies {
implementation "androidx.room:room-runtime:2.2.2"
kapt "androidx.room:room-compiler:2.2.2"
implementation "androidx.room:room-ktx:2.2.2"
以下のように、現在最新バージョンの「2.4.1」バージョンに変更したところ、ビルドが成功しました。
dependencies {
implementation "androidx.room:room-runtime:2.4.1"
kapt "androidx.room:room-compiler:2.4.1"
implementation "androidx.room:room-ktx:2.4.1"
References
Related Posts
- Android - FusedLocationProviderClientに位置情報を取得する
- Android - GPS、Network位置情報を取得する(LocationManager)
- Android - adbコマンドでActivity実行
- アンドロイド - MediaStoreにメディアファイルを保存する方法
- Android - Runtime permissionリクエスト方法と例(kotlin)
- Android11 - Storage(ストレージ)の変更まとめ
- Jetpack Compose - RowとColumn
- Android 13 - 細かいメディアファイルの権限
- Android 13でNotification権限をリクエスト、通知を表示する
- エラー解決:android gradle plugin requires java 11 to run. you are currently using java 1.8.
- Query method parameters should either be a type that can be converted into a database column or a List
- Android - TabLayoutの実装方法(+ ViewPager2)
- Android - adbコマンドで特定のパッケージのプロセスの終了
- Android - adb push、pullでファイルのコピー、ダウンロード
- Android - adbコマンドでsettings value確認、変更、
- Android 12 - IntentFilterのexported明示的な宣言
- Android - adb logcatコマンドでログ出力
- Android - ACTION_BOOT_COMPLETEDイベント受信
- Android - Foreground Service実行
- Android - ファイル入出力の例(Read、Write、内部、外部ストレージ)
- Android - アプリの権限を確認(Permission check)
- Android - adbで実行中のプロセス、スレッドリスト及びメモリ情報の確認
- Android - Broadcast Receiver登録およびイベントの受信方法
- Android - Cleartext HTTP ... not permitted例外解決方法
- Androidのビルドエラー - Calls to Java default methods are prohibited in JVM target 1.6
- アンドロイド - Assetsでファイルを読み取る方法
- アンドロイドのさまざまなNotification種類と実装方法
- アンドロイド - INSTALL_FAILED_TEST_ONLYエラー解決方法
- Android EspressoのCustom Matcher実装方法
- Android Espressoを使用してUIをテストする方法(3)
- アンドロイド - CTS hostsideをgradleで構築する方法
- Androidのアプリのデータフォルダーのパスと内部/外部ストレージ説明
- アンドロイド - 最初のApp作成
- Androidをインストールする方法(Windows)