【问题标题】:Parsing R.java back to xml files将 R.java 解析回 xml 文件
【发布时间】:2014-10-16 06:33:34
【问题描述】:

我有一个R.java 文件,但我丢失了相应的 XML 文件。是否有可以解析R.java 并将字段转换回XML 属性的工具?

【问题讨论】:

    标签: java android android-layout syntax xml-parsing


    【解决方案1】:

    取自文档: 在应用程序中提供资源后,您可以通过引用其资源 ID 来应用它。所有资源 ID 都在项目的 R 类中定义,aapt 工具会自动生成该类。
    当您的应用程序被编译时,aapt 会生成 R 类,其中包含 res/ 目录中所有资源的资源 ID。对于每种类型的资源,都有一个 R 子类(例如,所有可绘制资源的 R.drawable),对于该类型的每种资源,都有一个静态整数(例如,R.drawable.icon)。此整数是可用于检索资源的资源 ID。
    虽然 R 类是指定资源 ID 的地方,但您永远不需要查看那里来发现资源 ID。

    简单地说,您可以使用这个类来访问资源。您不能将自动生成的索引转换为 XML 属性。

    【讨论】:

    • R.class 是否有可能从我的 XML 文件中找不到的实体生成字段,特别是项目的 /res 文件夹中的那些?
    • 例如,如果您删除 XML 文件中的实体,则它们的 id 会在编译期间自动从 R.java 中删除。因此,如果 XML 文件丢失,并且项目构建,则默认情况下必须删除它们的所有实体。如果将 XML 文件添加到项目中,则所有索引也必须在编译期间自动生成。
    • 我换种说法,APK 文件的 dex 中的 R.class 是否有字段可以记录 APK 文件的 /res 目录中所有必需的 XML 属性的映射?
    • 如果项目构建,那么答案是肯定的。
    【解决方案2】:

    仅供参考,R.java 文件仅包含资源的自动生成索引,因此我确信无法从中取回 XML 文件,因此不确定是否有可用的工具。

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 2011-11-20
      • 2014-08-23
      • 1970-01-01
      相关资源
      最近更新 更多