关于Android drawable的怪异问题

关于Android drawable的怪异问题,第1张

概述我有一个视图,我为使用SetBackgroundResource(R.drawable.led_red)动态分配背景.这可以正常工作数周,但是突然间,即使我没有更改与这些图像相关的项目中的任何内容,它也停止为我为此目的使用的图像之一(led_blue)工作.即使相同的代码与led图像的其他变体一起正常工作,图像也不会出

我有一个视图,我为使用SetBackgroundResource(R.drawable.led_red)动态分配背景.这可以正常工作数周,但是突然间,即使我没有更改与这些图像相关的项目中的任何内容,它也停止为我为此目的使用的图像之一(led_blue)工作.即使相同的代码与led图像的其他变体一起正常工作,图像也不会出现.这种有问题的颜色在…之前也起作用.

我尝试了很多事情,似乎如果我将另一个图像添加到项目中,以便R.java中该问题图像的ID(0x7f020000)变为其他图像,它将再次开始工作.但是我当然不能简单地解决这个问题,因为除非我找到发生这种情况的原因,否则将来其他图像可能也会发生.

我添加的使用0x7f020000的新图像现在也无法正常工作,因此它似乎与此个人ID有关,但我无法理解.

使用2.1 SDK的设备和模拟器上都会发生这种情况

有什么想法吗?

谢谢.

解决方法:

简短答案:
这是一个bug,已在AndroID 3.0及更高版本中修复.

长答案:
在过去的几年中,我也多次遇到此错误,尽管最终我最终钻入了源代码,发现它是由于低级资源缓存冲突错误而发生的.

幸运的是,此问题是在AOSP更改Ia971bb242ceac5e8f9346094009a10f356399ab9(大约为2010年7月)的同时解决的.

但是,据platform/frameworks/base git repository称,直到2011年2月Honeycomb才发布.

在2011年9月,由于大多数已发布设备中仍然存在该错误,因此将其归档为Android bug 20283.

支持早期设备的解决方法是添加一个空的< resources>.文件(按字母顺序第一个出现)(例如“ a_workaround.xml”),从而增加了其他可绘制对象的资源ID.如其他答案中所述,空图像也可以工作.

总结

以上是内存溢出为你收集整理的关于Android drawable的怪异问题全部内容,希望文章能够帮你解决关于Android drawable的怪异问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1068927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存