【问题标题】:Why would resources.getStringArray(int) throw exception?为什么 resources.getStringArray(int) 会抛出异常?
【发布时间】:2011-02-08 21:46:37
【问题描述】:

我有一个电话

Resources resources = Resources.getSystem();
String[] networkFiles = resources.getStringArray(R.array.xmlNetworkFiles);

我知道这个资源数组存在(因为我可以使用自动生成的 R 文件引用它)但它继续抛出 ResourceNotFoundException

可能是什么原因造成的,我能做些什么来解决这个问题?

我在其他地方使用过类似的代码来检索整数数组,但这个代码在我的单元测试中总是失败。

【问题讨论】:

    标签: java android exception resources


    【解决方案1】:

    这是因为Resources.getSystem() 返回了错误的资源对象。来自文档:

    返回一个全局共享资源 仅提供访问权限的对象 系统资源(无应用程序 资源),并且未配置为 当前屏幕(不能使用 尺寸单位,不变基础 关于方向等)。

    因此,尽管R.array.xmlNetworkFiles 是为您的应用程序定义的资源值,但您正在请求系统资源但没有找到。

    请改用 getResource()(来自 Activity 子类)或 getContext().getResources()(来自 View 类)。

    【讨论】:

      【解决方案2】:
      Resources resources = getResources();
      String[] networkFiles = resources.getStringArray(R.array.xmlNetworkFiles);
      

      试试这个,我想这可以解决你的问题。

      【讨论】:

      • 如果类不是 Activity 或 Service 的子类,这将不起作用
      猜你喜欢
      • 1970-01-01
      • 2021-04-28
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 2014-12-12
      相关资源
      最近更新 更多