Android Parceler Library - java.lang.RuntimeException:Parcel:无法编组值

时间:2016-07-07 11:05:11

标签: java android parcelable runtimeexception parceler

我正在尝试使用Android的Parceler库。

  

http://parceler.org/

但是当我尝试在几个Java对象上使用它时出现以下错误,这是我得到的错误:

  

java.lang.RuntimeException:Parcel:无法编组值

以下是似乎失败的课程:

//MyObject.java
@Parcel
public class MyObject {

@SerializedName("name")
String displayName;

@SerializedName("address")
String displayAddress;

@SerializedName("css")
MyTheme theme;

@SerializedName("myList")
ArrayList<String> myList;

MyDetails myDetails;

// empty constructor needed by the Parceler library
public MyObject(){

}

//Various Getters and Setters, some manipulate data

这是MyTheme课程:

@Parcel
public class MyTheme {

    @SerializedName("backgroundColor")
    String backgroundColor;

    @SerializedName("textColor")
    String textColor;

    // empty constructor needed by the Parceler library
    public MyTheme(){

    }

    //Various getters and setters and some non getter/setter methods

这是MyDetails类:

@Parcel
public class MyDetails {
    @SerializedName("description")

    @SerializedName("addressTypes")
    ArrayList<String> addressTypes;

    // empty constructor needed by the Parceler library
    public MyDetails(){

    }

    //Various getter methods

最后,我以两种方式使用MyObject对象,一个是我发送MyObjects的ArrayList,另一个是我发送一个,如下所示:

//ArrayList
ArrayList<MyObject> myObjects = ...
intent.putExtra(INTENT_EXTRA_OBJECTS, Parcels.wrap(myObjects));

//Retrieving
merchants = Parcels.unwrap(getIntent().getParcelableExtra(INTENT_EXTRA_OBJECTS));

//Single Object
MyObject myObject = ...;
args.putParcelable(ARG_OBJECT, Parcels.wrap(myObject));

//Retrieving
myObject = Parcels.unwrap(getArguments().getParcelable(ARG_OBJECT));

错误非常模糊,我不确定如何调试或找到解决方案,任何人都可以指出代码中的问题可能出现在哪里?

0 个答案:

没有答案