我有一个包含另一个对象的对象,我想使用parcelable从一个片段发送到另一个片段,如下所示:
Fragment fragment = new Fragment();
Bundle bundle = new Bundle();
bundle.putParcelable(mykey, Parcels.wrap(MySubObj));
fragment.setArguments(bundle);MyObj的POJO结构:
class MyObj {
String value;
MySubObj value2;
//geters & seters
@Parcel
class MySubObj {
String name;
int age;
ActivityDomain acdomani;
//geters & seters
@Parcel
public class ActivityDomain {
String name;
String field;
int countEmpl;
//geters & seters
}
}
}所以在Parcels.wrap(MySubObj)上我得到了这个错误:
org.parceler.ParcelerRuntimeException: Unable to find generated Parcelable class for com.mypakage.MyObj$MySubObj , verify that your class is configured properly and that the Parcelable class com.mypakage.MyObj$MySubObj$$Parcelable is generated by Parceler.我是不是错过了什么?
发布于 2016-09-25 13:57:12
类com.mypakage.MyObj$MySubObj$$Parcelable会在构建应用程序时自动生成。如果没有找到它,可能有两个不同的原因:它一开始就不存在,或者在构建过程中被Proguard删除了。
因此请确保正确配置Proguard
# Parcel library
-keep interface org.parceler.Parcel
-keep @org.parceler.Parcel class * { *; }
-keep class **$$Parcelable { *; }并且不要忘记批注处理器的依赖关系
compile 'org.parceler:parceler-api:1.1.5'
apt 'org.parceler:parceler:1.1.5'https://stackoverflow.com/questions/39683769
复制相似问题