【问题标题】:Can't read resources when running methods from dex file从 dex 文件运行方法时无法读取资源
【发布时间】:2014-10-26 13:08:22
【问题描述】:

我有一个包含代码和资源的 jar 文件 (ResourceBundle)。
我用那个 jar 在 android studio 中创建了一个简单的项目,编译它,提取 .apk 并将 classes.dex 复制到第二个项目。还将提取的 .apk 中的资源复制到第二个项目中。

从第二个项目中,我从 .dex 文件中加载了一个类。 当从该类(从 dex 文件)中运行一个方法来读取它找不到的资源时,它会抛出一个异常:

Caused by: java.util.MissingResourceException: Can't find resource for bundle ...

失败的那一行:

ResourceBundle resource = ResourceBundle.getBundle("xx.yy.zz.resources.aa", Locale.getDefault());

如果我只是跑步:

ResourceBundle resource = ResourceBundle.getBundle("xx.yy.zz.resources.aa", Locale.getDefault());

从第二个项目(不是从 dex 中)它可以正常工作 - 将获得资源。

有什么想法吗?

谢谢

【问题讨论】:

    标签: android android-resources dex dexclassloader


    【解决方案1】:

    终于成功了,分享一下: 而不是使用 classes.dex 使用 .apk 作为类加载器。 它知道如何从里面的 dex 中读取函数并从中获取资源。

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 2023-03-24
      相关资源
      最近更新 更多