【问题标题】:Add XML Serialized object to APK so it is copied into the app's private files directory将 XML 序列化对象添加到 APK,以便将其复制到应用程序的私有文件目录中
【发布时间】:2021-12-12 21:02:57
【问题描述】:

我有一个桌面应用程序,可为我的 android 应用程序生成资源/数据文件。这些是存储我的自定义数据类实例的 XML 文本文件。这些对象使用简单 XML 序列化库进行序列化。在我的 android 应用程序中,我想从这个 XML 序列化类实例化对象。

我喜欢将这些 xml 文件添加到 Android Studio,以便它们包含在设备安装的 APK 中,并放置在例如私有应用程序目录“files”中,getFilesDir() 映射到该目录。我找不到这样做的方法。

如果我将这些xml文件添加到Android XML资源文件夹中,需要使用Android的XML资源解析器,不能使用Simple XML库。

有什么建议吗?看到资源捆绑的限制性,我觉得我做出了错误的设计选择。

谢谢,亲切的问候, 哈门

【问题讨论】:

  • “我找不到办法”——没有自动支持。如果文件尚不存在,您始终可以自己将数据从资源或资产复制到文件中。 “如果我将这些 xml 文件添加到 Android XML 资源文件夹,我需要使用 Android 的 XML 资源解析器”——如果您使用原始资源或资产,您可以在您的内容上获得 InputStream,这似乎受简单的 XML。
  • 谢谢。这确实解决了我的问题!将其发布为我的问题的答案。

标签: android xml apk xml-serialization android-resources


【解决方案1】:

根据 CommonsWare 的评论:解决方案是将其添加到原始资源文件夹中,然后您可以使用以下方式访问它:

InputStream xmlExerciseInputStream = getResources().openRawResource(R.raw.myresource);
MyClass myClass = serializer.read(MyClass.class, xmlExerciseInputStream);

【讨论】:

    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多