androidx.roomのバグ確認用プロジェクト
javaの予約語だとkaptがおかしくなるよって仕様の確認用プロジェクト
- roomは@Entityがついているclassをテーブル定義として使用するがcolumn名がcatchだとpublic constructorがマッチングせずビルド失敗になる
- kaptの仕様としてjavaの予約語は使ってはいけないよ、という話
- entityを用意してあるのでkeyの部分をcatchに変更してビルドしてみてください
- 下記のようにビルド失敗になると思います
エラー: Entities and POJOs must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).
public final class StringEntity {
^
Tried the following constructors but they failed to match:
StringEntity(int,java.lang.String) -> [param:id -> matched field:id, param:catch -> matched field:unmatched]\room-catch\app\build\tmp\kapt3\stubs\debug\com\ryunen344\room\column\db\entity\StringEntity.java:9: エラー: Cannot find setter for field.
private final int id = 0;
- ここでエラーが吐かれているのは確認したが詳しい原因まで終えてないです
roomが中で使ってるgoogle AutoValueが悪いのやもしれません- issue tracker
- your track
kaptでjavaの予約語は使ってはいけない