[Android] 「Execution failed for task ‘:app:kaptDebugKotlin’」というエラーが出た時の確認事項 [Room/SQLite]

Android

AndroidでRoomを使ってSQLiteを書いたりなんやかんやしている時に、以下のようなエラーが出ました。

Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

いつもならエラーの詳細がLogcatで確認できますが、今回はこのようなエラーが出て、何が間違っているのかわからず、行き詰ってしまいました。

ネットで調べてもわからず、直前に操作した内容も覚えておらず、バックアップも取っていなかったので、全てのソースコードを調べる羽目になりました。

エラーの原因はSQL文の記述ミスでした。

//誤 (longは予約語?)
@Query("SELECT * FROM word_table WHERE id = :long")
suspend fun getById(long: Long): Word

//正
@Query("SELECT * FROM word_table WHERE id = :mylong")
suspend fun getById(mylong: Long): Word

こんなしょうもないミスで、解決するのに数時間を費やしてしまいました。そろそろGithubというものを導入しようかと思います。

広告