从 dex 文件运行方法时无法读取资源



我有一个包含代码和资源(ResourceBundle)的jar文件
我用这个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());

从第二个项目(而不是从索引中)来看,它会正常工作——将获得资源。

你们知道吗?

感谢

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

最新更新