我打电话给
Resources resources = Resources.getSystem();
String[] networkFiles = resources.getStringArray(R.array.xmlNetworkFiles);
我知道这个资源数组存在(因为我可以用自动生成的R文件引用它)但是它继续抛出ResourceNotFoundException
。
可能导致此问题的原因以及如何解决此问题?
我在其他地方使用了类似的代码来检索一个int数组,但是这个代码总是在我的单元测试中失败。
答案 0 :(得分:5)
这是因为Resources.getSystem()
返回错误的Resources对象。来自文档:
返回全局共享资源 仅提供访问权限的对象 系统资源(没有应用程序 资源),并没有配置 当前屏幕(不能使用 尺寸单位,不会改变 在方向等)。
因此虽然R.array.xmlNetworkFiles
是您的应用程序的已定义资源值,但您要求的是系统资源并且找不到它。
使用getResource()
(来自Activity子类)或getContext().getResources()
(来自View类)。
答案 1 :(得分:2)
Resources resources = getResources();
String[] networkFiles = resources.getStringArray(R.array.xmlNetworkFiles);
试试这个,我认为这可以解决您的问题。