Android 用 Parceler ライブラリを使用しようとしています。
ただし、いくつかの Java オブジェクトで使用しようとすると、次のエラーが発生します。これは、私が取得しているエラーです。
java.lang.RuntimeException: パーセル: 値をマーシャリングできません
失敗していると思われるクラスは次のとおりです。
//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 オブジェクトを 2 つの方法で使用します。
//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));
エラーは非常にあいまいで、デバッグ方法や解決策を見つける方法がわかりません。コード内で問題が発生している可能性がある場所を誰かが指摘できますか?