昨晚我的代码工作正常,今天当我加载它时,我在代码中访问的原始资源正在尝试从指向字符串的id而不是我原始文件夹中的xml文件中读取。
我已经使用http://www.statman.info/conversions/hexadecimal.html来跟踪资源ID并将它们与R十六进制ID匹配,我可以看到它应该访问0x7f040002但是由于某种原因访问7f060000 ...
我已经看过了: Accessing wrong raw resource in Android
我已完成以下所有操作:
int resId = con.getResources()。getIdentifier(“raw_tsn_xml_amina_simple”,“raw”,con.getPackageName());
还完全从头开始重建项目。 无论我做什么 - 它始终将应用名称作为其为输入流引用的资源ID - 来源
这些都不适合我... 有没有人有任何想法我还能尝试什么?
我还添加了图片,向您展示我注意到的内容:
调试代码段
Android R文件片段
答案 0 :(得分:1)
尝试删除Gen文件夹并让它重新生成。然后再试一次。
答案 1 :(得分:1)
我前几天遇到了这个问题,使用了错误的图像资源ID。唯一对我有用的是重命名资源并重命名对所述资源的引用。因此,请尝试将raw_tsn_xml_amina_simple.xml重命名为其他内容。
答案 2 :(得分:1)
显然eclipse调试器不像我预期的那样可靠。
当我使用调试器时,我注意到正确找到了资源ID,但是当我真正挑选调试器时,inputStream似乎是从另一个源构建的。
我认为这就是我的代码崩溃的原因,但事实并非如此。
我使用SIMPLE xml安卓库 - 如果您传递的xml是意外/无效格式,则无法构建您创建的数据模型(我的XML无效 - 因此崩溃)。< / em>的
我做了回滚,注意到我添加了新的XML,使运行崩溃。
调试器刚刚启动...当事情不为空时给我空值,即使我的日志打印正确值也显示不同的值!
有一次我看到这种变化,我不像我通常那样信任调试器。
我的建议: 如果此页面上较简单的解决方案无效,请执行以下步骤:
首先怀疑代码添加!如果您添加的内容突然中断了您的工作代码,可能是您自己的错误。
如果您的调试程序很奇怪,请打印有用的日志信息(速度更快),以便在适当的位置为您提供正确的信息。
以下是我找到问题根源的确切步骤。