1

クラスとプリミティブ型を使用してクラス File を作成しました。

ラップしようとすると、エラーが発生します:

生成された Parcelable クラスが見つかりません。クラスが正しく構成されていること、および Parcelable クラスが Parceler によって生成されていることを確認してください。

ファイルクラス:

@Parcel
public class File {
    int id;
    FileData data;
    FileMeta meta;
    String cypher_key;
    boolean isNew;

    public File() {
        isNew  = true;
    }

    public File(int id, FileData data, FileMeta meta, String cypher_key) {
        this.id = id;
        this.data = data;
        this.meta = meta;
        this.cypher_key = cypher_key;
        isNew = false;
    }

    public int getId() {
        return this.id;
    }

    public int getFileDataId() {
        return this.data.getId();
    }

    public int getFileDataVersion() {
        return this.data.getVersion();
    }

    public String getFileUrl() {
        return this.data.getUrl();
    }

    public String getFileType() {
        return this.data.getTagType();
    }

    public String getFileDaraInit() {
        return this.data.getInintDate();
    }

    public String getMetaDetailes() {
        return this.meta.getDetails();
    }

    public int getMetaVersion() {
        return this.meta.getVersion();
    }

    public String getMetaDateInit() {
        return this.meta.getInitDate();
    }

    public String getMetaDateModif() {
        return this.meta.getModifDate();
    }

    public boolean isNew(){
        return this.isNew;
    }


    public void setFileType(String type){
        if (data!=null){
            data.setTypeTag(type);
        }else{
            data = new FileData();
            data.setTypeTag(type);
        }
    }
}

FileMeta.class:

@Parcel
public class FileMeta {
    String details;
    int version;
    String dt_initialization;
    String dt_modification;

    public FileMeta() {

    }

    public FileMeta(String details, int version, String dt_initialization, String dt_modification) {
        this.details = details;
        this.version = version;
        this.dt_initialization = dt_initialization;
        this.dt_modification = dt_modification;
    }

    public String getDetails() {
        return this.details;
    }

    public int getVersion() {
        return this.version;
    }

    public String getInitDate() {
        return this.dt_initialization;
    }

    public String getModifDate() {
        return this.dt_modification;
    }
}

FileData.class:

@Parcel
public class FileData {
    int id;
    String url;
    int version;
    String type_tag;
    String dt_initialization;

    public FileData() {
    }

    public FileData(int id, String url, int version, String type_tag, String dt_initialization) {
        this.id = id;
        this.url = url;
        this.version = version;
        this.type_tag = type_tag;
        this.dt_initialization = dt_initialization;
    }

    public int getId() {
        return this.id;
    }

    public int getVersion() {
        return this.version;
    }

    public String getUrl() {
        return this.url;
    }

    public String getTagType() {
        return this.type_tag;
    }

    public String getInintDate(){
        return this.dt_initialization;
    }

    public void setTypeTag(String typeTag){
        this.type_tag = typeTag;
    }
}

私のコードで何が間違っていますか?

助けてくれてありがとう。

4

1 に答える 1

2

Parcelableこれは、クラスが生成されない場合にスローされるエラーです。これは、ビルドの構成ミスが原因である可能性が最も高いです。ビルドを検証し、Parceler の依存関係が次のように宣言されていることを確認します。

compile "org.parceler:parceler-api:1.0.4"
apt "org.parceler:parceler:1.0.4"

http://parceler.org/#getting_parceler

于 2015-11-15T15:07:10.257 に答える