【问题标题】:Resources not available in test project测试项目中不可用的资源
【发布时间】:2014-09-12 23:22:00
【问题描述】:

我有一个 Android 测试项目。在资源文件夹中,我有字符串和颜色,但没有可用的资源。我看不到我的任何字符串或颜色。我已经清理并重建了项目,但没有任何运气。

要访问我正在使用的资源:

String test = context.getResources(R.string.button_text);

在这种特殊情况下,button_text 无法解析。

在字符串资源中我有四个字符串

 <string name="button_text">Install</string>
 <string name="button_run_unit_tests">Run All Tests</string>
 <string name="Quit">Quit</string>  
 <string name="IsolatedTest">Run Unit Test</string>

但我无法从我的 Java 资源文件中访问任何内容。我错过了什么?

这是我看到的(不确定它引用的是什么):

【问题讨论】:

  • 您是如何尝试访问您的资源的?
  • 试试这个答案stackoverflow.com/a/6676897/3928341 也尝试重新启动 Eclipse,它修复了很多奇怪的错误,比如我在 Android 中遇到的这个错误
  • @nem 感谢您的链接。我已经清理、重建甚至重新启动了 Eclipse。还是没有运气。

标签: android resources


【解决方案1】:

我错过了什么?

也许您缺少正确的 R 导入。根据您建议的替换,您似乎正在从您的应用程序中导入 R。您的字符串不在您的应用程序中。它们在您的测试项目中,具有不同的包名称。在测试项目的清单中找到 package 名称,然后尝试导入 that R

请注意,我从未尝试将资源放入测试项目中,因此虽然它们可能会起作用,但我不能确定这一点。

【讨论】:

  • 它不断导入默认的 android.R 并更改命名空间修复了引用问题 - 谢谢!
【解决方案2】:

GetResources() 为您获取一个允许您访问资源的对象。要访问该资源,您需要执行 get&lt;Type&gt;()(在您的情况下为 getString)。所以你想做:

String test = context.getResources().getString(R.string.button_text);

此外,如果您在 Activity 中调用它,您并不严格需要调用 context(因为 Activity 是一个上下文,您可以直接执行 getResources)。

【讨论】:

  • 无论如何我都看不到资源。请查看我的编辑。
  • 您帖子中的所有其他内容对我来说都是正确的。您的 strings.xml 的格式是否正确,带有如下标题:&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;resources&gt;
  • 是的,一切都很好。该项目在没有资源参考行的情况下编译得很好。
  • 那我就没主意了。如果您还没有清理您的项目,我会发誓它使用缓存用于不同的项目以完成选项卡。您是否在 Eclipse 中打开了多个项目?
猜你喜欢
  • 2012-03-04
  • 1970-01-01
  • 2012-09-17
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
  • 2011-01-15
  • 1970-01-01
相关资源
最近更新 更多