RuntimeException:Parcel android.os.Parcel:使用 android 包时解组未知类型代码

2024-01-05

我收到以下错误消息:

java.lang.RuntimeException: Parcel android.os.Parcel@41141190: Unmarshalling unknown type code 7602286 at offset 16
at android.os.Parcel.readValue(Parcel.java:1921)
at android.os.Parcel.readMapInternal(Parcel.java:2094)
at android.os.Bundle.unparcel(Bundle.java:223)
at android.os.Bundle.getFloat(Bundle.java:981)

我正在使用 WiFi direct 发送一个对象作为消息。因此,我在发送时将对象转换为字节数组,并在接收时反转转换。

我的对象有两个字段 - 一个字符串和一个 android 包。发送时,我填充字符串字段并使用键将浮点值放入 android 包中。

我能够在接收者端检索字符串值。当我尝试使用以下命令检索包内存在的浮点值时,会出现错误getFloat方法。这可能是什么原因?


花了很多时间我找到了解决方案,我在 Parcelable 类中犯了错误,我忘记编写和读取其中一个参数,最后我解决了问题,我的代码如下所示:

public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(filepath);
    dest.writeString(filename);
    dest.writeString(fileCount);
    dest.writeInt(index);
}

public YourParcelableClassName(Parcel in){
    filepath = in.readString();
    filename = in.readString();
    fileCount = in.readString();
    index = in.readInt();
}

在第一个活动传递数据中,

Intent mIntent = new Intent(YourFirstActivity.this,YourSecondActivity.class);
mIntent.putExtra("position",position);
mIntent.putParcelableArrayListExtra("filedata",parcelableArrayList);
startActivity(mIntent);

为了将意图数据获取到第二个活动中,

int Position = getIntent().getIntExtra("position",0);
parcelableArrayList = getIntent().getParcelableArrayListExtra("filedata");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RuntimeException:Parcel android.os.Parcel:使用 android 包时解组未知类型代码 的相关文章

随机推荐