Android项目是否有某些XML /布局/资源限制/编译工具链中的某些点?将单个(未使用的,任何内容)XML布局文件添加到我的Android项目会导致应用程序中的其他位置出现渲染错误。删除它修复它。这是编译工具链的某些部分的错误,我该如何诊断/修复它?
其他一些背景信息:
我有一个相对较大的Android项目。今天我在添加功能时遇到了一个问题:在旋转应用程序之前,按钮的背景可绘制不会呈现。其他背景/样式/样式按钮仍然有效,但这个背景在应用程序的任何地方都非常破碎。旋转修复它所在的屏幕以及按钮的每个后续实例,直到重新启动应用程序的过程。
经过批次的试验和错误,以及平分和实验之后,我有一定程度的最小再现非常可靠:在我当前项目中添加两个XML布局文件会触发错误。具体来说,在唯一的/ res / layout文件夹中添加第40个XML文件。删除它可以让按钮正确渲染,添加它会打破它。
文件可以完全不使用,完全从头开始,包含任何内容和任何名称。没有其他项目改变。我正在运行Eclipse和Android SDK的最新版本 - 如果需要,我可以获得特定的版本号。它已经在同事设备的同事机器上复制了这个项目。我已经清理,重建,手动删除了构建产品,重新启动了我的电脑,错误仍然存在。
必须有一些更具体的原因,我希望能帮助缩小范围。不幸的是,它已经超出了我对Android构建系统的了解,它似乎并不是我直接造成的。有人可以帮忙吗?还是指点一些其他资源?
更多详情:
同样有趣:将drawable文件从“rounded_teal_button_normal”重命名为“rounded_teal_button_nrml”不会改变任何内容,但将其更改为“rounded_teal_button_aargh” 。只有重要的区别我可以看到,“nrml”不会改变文件的字母顺序,而“aargh”会(有一个“_disabled”文件和“_pressed”)。但是,这会导致现在处于“正常”位置的drawable停止绘制。
更改按钮状态选择器的项目顺序或哪个状态获取哪个可绘制(甚至删除所有其他样式)没有任何效果。
添加第三个 XML文件会导致问题消失,并且它似乎不会导致按字母顺序排列的附近的drawables中断,但很难确定它正在解决所有内容,'为什么'的问题仍然存在。
答案 0 :(得分:1)
需要更多信息才能进行更多有根据的猜测。一旦我遇到类似于GB版本而不是上面的问题,只有在Mac上编译时才会出现;如果在Windows上编译,同样工作正常;问题是背景图像没有出现在按钮上。我的背景图像是一个9补丁,最后我注意到它是由于没有将各个图像放在所有drawable- [m | h | x] dpi中引起的;我只在drawable-xhdpi目录中使用它,所以修复它修复了问题。您可以检查这些类型的问题。例如,这个问题只出现在某些屏幕密度或某些Android版本等上。正如另一个响应所说,40 xml远远没有任何限制。
HTH, 阿里。