Android访问错误的资源...我该如何解决这个问题?

时间:2013-06-04 15:07:55

标签: android inputstream android-resources

昨晚我的代码工作正常,今天当我加载它时,我在代码中访问的原始资源正在尝试从指向字符串的id而不是我原始文件夹中的xml文件中读取。

我已经使用http://www.statman.info/conversions/hexadecimal.html来跟踪资源ID并将它们与R十六进制ID匹配,我可以看到它应该访问0x7f040002但是由于某种原因访问7f060000 ...

我已经看过了: Accessing wrong raw resource in Android

我已完成以下所有操作:

  1. 清洁,重建,运行。
  2. 删除R,重启Eclipse,清理,重建,运行
  3. 删除R,立即清理并重建,重新启动
  4. UmbySlipKnot删除Gen文件夹+以上所有内容的想法。
  5. 确保Android.R未在任何地方使用。
  6. 通过调用打印我期望使用的实际资源ID(正确返回预期的ID!):
  7. int resId = con.getResources()。getIdentifier(“raw_tsn_xml_amina_simple”,“raw”,con.getPackageName());

    还完全从头开始重建项目。 无论我做什么 - 它始终将应用名称作为其为输入流引用的资源ID - 来源

    这些都不适合我... 有没有人有任何想法我还能尝试什么?

    我还添加了图片,向您展示我注意到的内容:

    调试代码段 enter image description here

    Android R文件片段 enter image description here

3 个答案:

答案 0 :(得分:1)

尝试删除Gen文件夹并让它重新生成。然后再试一次。

答案 1 :(得分:1)

我前几天遇到了这个问题,使用了错误的图像资源ID。唯一对我有用的是重命名资源并重命名对所述资源的引用。因此,请尝试将raw_tsn_xml_amina_simple.xml重命名为其他内容。

答案 2 :(得分:1)

显然eclipse调试器不像我预期的那样可靠。

当我使用调试器时,我注意到正确找到了资源ID,但是当我真正挑选调试器时,inputStream似乎是从另一个源构建的。

我认为这就是我的代码崩溃的原因,但事实并非如此。

我使用SIMPLE xml安卓库 - 如果您传递的xml是意外/无效格式,则无法构建您创建的数据模型(我的XML无效 - 因此崩溃)。< / em>的

我做了回滚,注意到我添加了新的XML,使运行崩溃。

调试器刚刚启动...当事情不为空时给我空值,即使我的日志打印正确值也显示不同的值!

有一次我看到这种变化,我不像我通常那样信任调试器。

我的建议: 如果此页面上较简单的解决方案无效,请执行以下步骤:

  1. 首先怀疑代码添加!如果您添加的内容突然中断了您的工作代码,可能是您自己的错误

  2. 如果您的调试程序很奇怪,请打印有用的日志信息(速度更快),以便在适当的位置为您提供正确的信息。

  3. 以下是我找到问题根源的确切步骤。