首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RuntimeException: Parcel android.os.Parcel:使用android bundle时解组未知类型代码

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

Stack Overflow用户
提问于 2016-06-06 15:25:34
回答 1查看 4.5K关注 0票数 3

我收到以下错误消息:

代码语言:javascript
复制
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直接将一个对象作为消息发送。因此,我在发送时将对象转换为字节数组,并在接收时反转转换。

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

我能够检索到接收方的字符串值。当我尝试使用getFloat方法检索包中存在的浮点值时,出现了错误。这可能是什么原因呢?

EN

回答 1

Stack Overflow用户

发布于 2017-02-23 18:37:09

在花了很长时间后,我找到了解决方案,我在Parcelable类中犯了错误,我忘记了写和读其中一个参数,最后我解决了这个问题,我的代码看起来像这样:

代码语言:javascript
复制
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();
}

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

代码语言:javascript
复制
Intent mIntent = new Intent(YourFirstActivity.this,YourSecondActivity.class);
mIntent.putExtra("position",position);
mIntent.putParcelableArrayListExtra("filedata",parcelableArrayList);
startActivity(mIntent);

为了将意图数据放入第二个活动中,

代码语言:javascript
复制
int Position = getIntent().getIntExtra("position",0);
parcelableArrayList = getIntent().getParcelableArrayListExtra("filedata");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37651708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档