致命异常: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 (将#修改为@)