我有一个包含代码和资源(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中读取函数并从中获取资源