微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

致命异常:java.lang.RuntimeException地块:无法编组值Statename = Abra

如何解决致命异常:java.lang.RuntimeException地块:无法编组值Statename = Abra

使用来自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 举报,一经查实,本站将立刻删除。