0

私はアンドロイドアーキテクチャコンポーネントの新機能です。私は同じグラドル構成とandroid-architecture-components/BasicRxJavaSampleの参照を使用してアプリケーションを構築しようとしています。しかし、私は次のエラーが発生します。エラー:エンティティとPojosに使用可能なpublicコンストラクタが必要で、フィールドのセッターが見つかりません

  • エラー:(14,8)エラー:エンティティとPojosには、使用可能なパブリックコンストラクタが必要です。 = Department(java.lang.String、java.lang.String):[id:name]フィールドに一致するパラメータを持つ空のコンストラクタまたはコンストラクタを持つことができます。 null、dep:null]
  • エラー:(16,20)エラー:フィールドのセッターが見つかりません。
  • エラー:(18,20)エラー:フィールドのセッターが見つかりません。

すべてのアーキテクチャコンポーネントでバージョン1.0.0-alpha9を使用しています。私も現在の "1.0.0-beta1"バージョンで試しました。

私は見ました[フィールドのためのあいまいゲッター...部屋永続ライブラリ 2リンクもありますが、Googleサンプルによればすべてのフィールドにセッターを必要としません。

@Entity(tableName = "tblDepartment") 
public class Department{ 
    @PrimaryKey 
    private String mId; 

    private String mName; 

    @Ignore 
    public Department(String dep) { 
     mId= UUID.randomUUID().toString(); 
     mName= dep; 
    } 
    public Department(String id, String dep) { 
     mId = id; 
     mName=dep; 
    } 

    public String getDepartmentId() { 
     return mId; 
    } 

    public String getDepartmentName() { 
     return mName; 
    } 
} 
+0

あなたの問題は、 'Expense'クラスです。あなたの質問は 'Department'クラスを示しています。エラーメッセージが間違っているか、間違ったコードがあります。 – CommonsWare

+0

間違ったエラーログを誤って追加しました。 –

答えて

0

Modelクラスは、有効なコンストラクタは名前が谷必要です。

トラフルームを保存するすべてのフィールドのゲッター/セッター。

試してみてください。

@Entity(tableName = "tblDepartment") 
public class Department{ 
@PrimaryKey 
private String mId; 

private String mName; 

@Ignore 
public Department(String mName) { 
    mId= UUID.randomUUID().toString(); 
    this.mName= mName; 
} 
public Department(String id, String name) { 
    this.mId = mId; 
    this.mName=mName; 
} 

public String getId() { 
    return mId; 
} 

public String getName() { 
    return mName; 
} 
public void setId(String mId){ this.mId = mId; } 
public void setName(String mName){ this.mName = mName; } 
} 
+0

[このgoogleのサンプルをチェック](https://github.com/googlesamples/android-architecture-components/blob/master/BasicRxJavaSample/app/src/main/java/com/example/android/observability/persistence/User) java)。ここではpublicコンストラクタは使用されていません。 –

+0

私はこのコンストラクタをpublicにしようとしました。 –

+1

問題は、列名を使用しないで、POJOがゲッターの変数と同じ名前を持っていないことです。 –

関連する問題