https://www.3566t.com/news/show-5683902.html
项目的报错
:Unable to start activity ComponentInfo{com.jindaozi.app/com.jindaozi.app.activity.financ.SubmitPayActivity}:
java.lang.RuntimeException: Parcel android.os.Parcel@439e4cf0: Unmarshalling unknown type code 7471216 at offset 292
原因:在传递parcel传递数据时候,数据的读取顺序没有一致,部分手机会出现闪退现象
解决方法:读取的顺序应该一致
/**
* 这里的读的顺序必须与writeToParcel(Parcel dest, int flags)方法中
* 写的顺序一致,否则数据会有差错,比如你的读取顺序如果是:
* nickname = source.readString();
* username=source.readString();
* age = source.readInt();
* 即调换了username和nickname的读取顺序,那么你会发现你拿到的username是nickname的数据,
* 而你拿到的nickname是username的数据
* @param source
*/
public Person(Parcel source) {
username = source.readString();
nickname=source.readString();
age = source.readInt();
} /**
* 把值写入Parcel中
*/
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(username);
dest.writeString(nickname);
dest.writeInt(age);
}
本文探讨了在Android应用中使用Parcel传递复杂数据结构时出现的崩溃问题。具体表现为因数据读取顺序不一致导致部分设备上应用闪退。文章详细解释了问题原因,并提供了正确的数据读写顺序示例来确保数据的一致性和应用程序的稳定性。
3176

被折叠的 条评论
为什么被折叠?



