gpt4 book ai didi

java - Parceler POJO 到 Parcelable 失败并出现 ParcelerRuntimeException

转载 作者:行者123 更新时间:2023-12-01 09:28:01 29 4
gpt4 key购买 nike

我有一个包含另一个对象的对象,我想使用 Parcelable 将一个 fragment 发送到另一个 fragment ,例如:

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.

我错过了什么吗?

最佳答案

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'

关于java - Parceler POJO 到 Parcelable 失败并出现 ParcelerRuntimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39683769/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com