【发布时间】:2014-10-18 00:33:06
【问题描述】:
我有一些自定义可绘制对象,但不幸的是,当我尝试在设备上运行应用程序时,未加载可绘制对象。
- 我已尝试清理工作区...同样的问题。
- 我已尝试删除并重新导入清理 .metadata 文件夹的项目...同样的问题。
- 我已尝试删除 autogen 文件 R.java... 没有。
- 我已尝试更改使用的图像...没有。
- 我已更改名称...操作,这一次有问题的可绘制对象开始工作,但同样的问题发生在另一个图像上。
通过各种测试,我注意到未加载的图像始终是第一个
public static final class drawable {...}
在自动生成的文件R.java中
详细来说,地址为0x7f020000的资源图片:
public static final int bt_a_1=0x7f020000;
这些地址按字母顺序分配
所以我解决了简单地添加另一个项目中未使用的名为a1.png 的图像。
使用此解决方法一切正常,但我不知道这个荒谬问题的原因是什么。
编辑
这是自 HoneyComb 发布更改 Ia971bb242ceac5e8f9346094009a10f356399ab9 后修复的 Android 问题
问题是由于低级资源缓存冲突错误而发生的。
更多信息请访问: https://android-review.googlesource.com/#/c/15815/
此问题可能发生在所有操作系统早于 HoneyComb 的设备中...为避免这些设备中的错误,请使用我描述的相同策略。
【问题讨论】:
-
请发布有问题的可绘制文件之一,并告诉我们您是否保存了资源。
-
尝试删除 R.java 并选择自动构建。
-
我也试过删除gen文件...总是自动生成同样的问题。
-
@Sam 问题出现在所有图像上。编译器按字母顺序为第一个 png 分配地址 0x7f020000 并且由于某种奇怪的原因没有加载。