【问题标题】:How can I deserialize an object of a class that comes from another project?如何反序列化来自另一个项目的类的对象?
【发布时间】:2015-06-16 14:20:16
【问题描述】:

我想将我在 Eclipse 中创建的类导入到 Android Studio 中的项目中。我一直在 Eclipse 中处理一个项目,该项目涉及一个名为 WordList 的自定义类,并且我已将此类的一个实例序列化为二进制文件。

现在,我刚刚开始学习 android 编程,我想制作一个使用这个文件的应用程序。我想使用这样的东西从该文件中读取WordList 对象:

ObjectInputStream in = new ObjectInputStream( new FileInputStream(new File( /*file name*/ ))); return (WordList) in.readObject();

但为了做到这一点,程序当然需要知道WordList 类,否则我会在演员表中得到ClassNotFoundException。我首先做的是在 Android 项目中创建一个新的 WordList 类,它只是 Eclipse 项目中的一个完全相同的副本,但后来我得到了这个例外:

java.lang.ClassNotFoundException: Didn't find class "package_name.WordList" on path: DexPathList[[zip file "/data/app/my_project_directory-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

显然,这两个相同的WordList 类实际上并不相同。为什么会这样?有没有办法让我将 Eclipse 项目中的类导入 Android Studio 项目,以便我实际上可以使用同一个类?或者有没有办法让程序意识到文件实际上包含一个序列化的WordList对象?

【问题讨论】:

  • 您是由 Android 规范编写的“Eclipse”类吗?你得到了什么例外?请张贴。
  • 你原来的类是否设置了serialverionUID?如果没有,你现在可能不会让它工作。 stackoverflow.com/questions/285793/…

标签: java eclipse android-studio


【解决方案1】:

将原始类和其他类打包到一个 jar 文件中,并作为 client/lib jar 提供给其他类

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多