当前位置: 首页 > 知识库问答 >
问题:

三星Galaxy S5上序列化的例外

东方河
2023-03-14

在我的应用程序中,我将一个数据对象从一个活动传递到另一个。代码非常简单,在第一个活动中:

    Intent intent = new Intent(getActivity(), BlablaActivity.class);
    intent.putExtra(Values.KEY_ITEM, item);

在接收活动上:

    Intent intent = getActivity().getIntent();
    item = (Item) intent.getSerializableExtra(Values.KEY_ITEM);

广告课程也很简单:

public class Advertising implements Serializable {

    private static final long serialVersionUID = -7292860618498106953L;

    private Content content;
    private Anchor anchor;
    private String target;
    private String id;

// ...

}

以及似乎导致此问题的锚定类:

public class Anchor implements Serializable {

    private static final long serialVersionUID = 7360857799761417956L;

    public String value;
    public String label;

// ...

}

只有三星Galaxy S5(sm-g900f)例外:

原因:java。lang.IllegalArgumentException:我的公司。模型广告anchor
的类型为de.mycompany。模型结果和暴露。主播,我的公司。模型结果和暴露。锚

我无法理解这一点,预期的课程就是实际的课程。这似乎是另一个三星特有的问题。有没有人经历过这种情况,并且知道修复方法,或者知道原因是什么?

编辑:

>

  • 是的,我用的是Proguard。proguard文件如下所示:

    -keepattributes**-继续上课!Android支持v7。内部的看法菜单{*;} -dontpreverify-dontoptimize-dontshrink-dontwarn**

    第二行是三星设备上已知错误的变通方法,不应该触及任何类,除了android.support.v7.internal.view.menu.*包中的类。

    >

    切换到Parcelable将意味着对整个项目进行大规模检修。以可序列化的方式传递对象应该可以在所有设备上使用。

    Anchor类只是这个bug的一个例子,它发生在其他几个看起来基本相同或非常相似的类上。所以这不是一个类,而是一个更普遍的问题。


  • 共有2个答案

    裴华荣
    2023-03-14

    您应该查看Parcelable,以便在两个活动之间有目的地传递对象

    你可以看看这个教程,解释它是如何工作的,我建议你也来看看Android Doc。

    曾元忠
    2023-03-14

    我对你的问题有类似的问题,我发现三星在银河s5设备上的lolipop更新使用了被窃听的Multidex实现。你可以在这里查看我的问题,解释这个问题。有人回答了我的问题,但我还没有检查它是否工作。也许这会对你有所帮助。

     类似资料:
    • 本文向大家介绍.net的序列化与反序列化实例,包括了.net的序列化与反序列化实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了.net的序列化与反序列化的实现方法。分享给大家供大家参考。具体方法如下: 1.序列化与反序列化概述 C#中如果需要:将一个结构很复杂的类的对象存储起来,或者通过网路传输到远程的客户端程序中去,这时就需要用到序列化,反序列化(Serialization & De

    • 问题内容: 我正在使用v2 Google Play服务中的Google的LatLng类。那个特定的类是最终的,不会实现。有什么办法可以使该类实现? 我不想声明 短暂的 。 问题答案: 不是,但是是,如果可以的话。如果没有,您可以自己处理序列化:

    • 问题内容: Android是否有任何简单的示例在序列化中使用JSON? 谢谢 问题答案: 我们使用gson库。序列化就像调用一样简单 对于反序列化,

    • 主要内容:1. 数组,2. 集合,3. 泛型在本章中,我们将讨论和学习如何使用数组,集合和泛型的序列化/反序列化。 1. 数组 示例 我们来看看数组的序列化/反序列化。 创建一个名为的Java类文件:GsonTester.java - 执行上面示例代码,得到以下结果 - 2. 集合 让我们看看集合()序列化/反序列化的实际操作。 创建一个名为的Java类文件: GsonTester.java - 执行上面示例代码,得到以下结果 - 3. 泛

    • 问题内容: 我想使用我的三星chromebook为使用python的应用程序引擎开发程序,不幸的是,现在不可能了,因为我只有浏览器。 有在线IDE,像codule,但还不够好。 因此,在这方面,我有3个问题: 有没有办法入侵chrome os并退出其本机linux 有没有办法在chromebook上安装第二个操作系统(我有一个新的Samsung chromebook而不是第一个) 是否有任何Chr

    • 问题内容: 有效的Java-要保持单例保证,您必须声明所有实例字段都是瞬态的,并提供一个“ readResolve”方法。通过在此处声明瞬态场能实现什么?这是一个示例: 无论我是否将’state’变量声明为瞬态,我都会将c.getState()gettign打印为25。我在这里缺少什么吗? 问题答案: 通过使属性变为瞬态而获得的好处是,您无需序列化状态。序列化是不必要的,因为无论如何它都会被rea