我用android studio开发android项目。
我想在kotlin中使用onSaveInstanceState()
来保存领域对象。
我的代码是
@Parcel( implementations = arrayOf(UserRealmProxy::class),
value = Parcel.Serialization.BEAN,
analyze = arrayOf(User::class))
open class User : RealmObject() {
open var name: String? = null
@ParcelPropertyConverter(ListParcelConverter::class)
open var Items: RealmList<Item>? = null
}
但编译时出现了一些错误:
'Unresolved reference: UserRealmProxy'
'An annotation parameter must be a compile-time constant'
当然,UserRealmProxy已经存在,因为已经编译了项目。
@ParcelPropertyConverter(ListParcelConverter::class)
也不起作用。
它会在运行时导致异常:
'java.io.NotSerializableException: io.realm.RealmList'
但是这段代码在java中编译得很好。
我需要你的帮助。
答案 0 :(得分:0)
您可能需要注释 setter 。请试试这个。
@Parcel( implementations = arrayOf(UserRealmProxy::class),
value = Parcel.Serialization.BEAN,
analyze = arrayOf(User::class))
open class User : RealmObject() {
open var name: String? = null
open var Items: RealmList<Item>? = null
@ParcelPropertyConverter(ListParcelConverter::class) set
}
答案 1 :(得分:0)
对于我来说,当我遇到此错误时:'Unresolved reference:UserRealmProxy'。如果我有此包:com.path.model.Album,则必须使用:
import io.realm.com_path_model_AlbumRealmProxy
...
@Parcel(implementations = arrayOf(com_path_model_AlbumRealmProxy::class)