问题描述
使用来自parceler.org的@Parcel进行以下代码时,出现此错误。此错误仅发生在Android 10中。我想知道Parceler是否在Android 10中存在已知问题。
Fatal Exception: java.lang.RuntimeException Parcel: unable to marshal value State(name=Abra)
我正在使用具有此版本的Parceler库
implementation 'org.parceler:parceler-api:1.1.12'
kapt 'org.parceler:parceler:1.1.12'
模型类(科特琳)
@Parcel(Parcel.Serialization.BEAN)
data class Address(
override var id: String? = null,@Serializedname("first_name") var firstName: String? = null,@Serializedname("last_name") var lastName: String? = null,var company: String? = null,var abn: String? = null,var street1: String? = null,var street2: String? = null,var street3: String? = null,var street4: String? = null,// not used in front-end but still needed as a response to backend
@Serializedname("country_name") var countryName: String? = null,@Serializedname("country_code") var countryCode: String? = null,var state: String? = null,var city: String? = null,var postcode: String? = null,@Serializedname("telephone_number") var phoneNumber: String? = null,@Serializedname("is_default_shipping") var isDefaultDelivery: Boolean = false,@Serializedname("is_default_billing") var isDefaultBilling: Boolean = false,@Serializedname("user_id") var userId: String? = null // Backend depends on this
) : PaperModel
PaperModel类
interface PaperModel {
var id: String?
}
我使用此地址包裹的地方。
在onCreate方法中
val savedAddress: Address? = savedInstanceState?.let {
Parcels.unwrap(it.getParcelable(KEY_PARCEL_ADDRESS))
}
在onSaveInstanceStateState方法中
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
val addressparcel = Parcels.wrap(editAddressviewmodel.addressInEditing)
outState.putParcelable(KEY_PARCEL_ADDRESS,addressparcel)
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)