我正在尝试将@ParcelizeKotlin 1.1.4 添加的新注释与包含 RealmList 属性的 Realm 对象一起使用。
@Parcelize
@RealmClass
open class Garage(
var name: String? = null,
var cars: RealmList<Car> = RealmList()
) : Parcelable, RealmModel
Run Code Online (Sandbox Code Playgroud)
由于RealmList注释不支持,并假设@Parcelize有专门避免创建方法的解决方案是RealmList什么?
提前致谢
我正在使用socket.io库向socket.io服务器发送消息.服务器需要JSON对象,数组等.我的原始实现使用JSONOject和JSONArray数据类型.但是,我想切换到使用Parceler库生成的类.使用库的注释生成的类可以包装到Parcel中.这似乎是管理此类通信的一种非常方便的方式.但是,有没有办法将Parceler的类或Parcel类转换为JSON字符串或JSONObject/Array?
GSON库支持toJson方法,我知道Retrofit对Parcels,JSON和GSON有些神奇.
我正在使用parmler的领域.根据文档,我必须添加以下注释:
@org.parceler.Parcel(implementations = {SomeClassRealmProxy.class},value = org.parceler.Parcel.Serialization.BEAN,analyze = {SomeClass.class})
Run Code Online (Sandbox Code Playgroud)
但是在将版本更新到版本5.0.0之后,还没有生成SomeClassRealmProxy类.
我决定使用Parceler,因为它看起来像一个很棒的库,并且得到了作者的很好支持。我正在使用Parceler包装一个对象,并将其传递给捆绑包中的另一个Activity。当我尝试打开对象包装时,出现错误:android.os.Bundle cannot be cast to org.parceler.ParcelWrapper
我的FirstActivity代码:
User user = responseData.getUser();
Bundle bundle = new Bundle();
bundle.putParcelable("User", Parcels.wrap(user));
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("User", bundle);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我的SecondActivity代码:
User user = Parcels.unwrap(this.getIntent().getParcelableExtra("User"));
Run Code Online (Sandbox Code Playgroud)
我怀疑这只是一个新手错误。任何建设性的帮助表示赞赏!
我正在使用Realm和Parceler,一切正常,但是当我启用Proguard时,我在执行时遇到错误:
Parcels.wrap(obj)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
org.parceler.ParcelerRuntimeException: Unable to find generated Parcelable class for io.realm.g, verify that your class is configured properly and that the Parcelable class io.realm.g$$Parcelable is generated by Parceler.
Run Code Online (Sandbox Code Playgroud)
虽然我已经配置了proguard规则,如:
##---------------Begin: proguard configuration for realm ----------
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class * { *; }
-dontwarn javax.**
-dontwarn io.realm.*
##---------------End: proguard configuration for realm ----------
##---------------Begin: proguard configuration for Parcel ----------
-keep interface org.parceler.Parcel
-keep @org.parceler.Parcel class * { *; }
-keep …Run Code Online (Sandbox Code Playgroud)