以下是我的目录结构,以使我的问题更容易理解。
res/
layout/
a.xml
b.xml
layout-land/
a.xml
b.xml
layout-sw600dp-land/
a.xml
layout-sw720dp-land/
a.xml
现在根据我的理解,如果一个设备符合 layout-sw720p-land
限定符并尝试访问 b.xml
,这将是顺序 layout-sw720p-land
-> layout-land
-> layout
当 Dalvik 将尝试加载 b.xml
和它会在 layout-land
文件夹中找到资源,永远不会去 layout
文件夹加载 b.xml
。
这对我随身携带的设备来说工作正常。但是我在 Google Play 上收到了很多崩溃报告,而这并没有发生。如果设备在 layout-sw720p-land
中找不到资源,它将转到 layout
文件夹并加载 b.xml
而不是从 layout-land.xml
加载它。
这可能是什么问题?是设备特定问题吗?
最佳答案
请检查应用程序失败的设备的 os 版本,它应该是 >= 3.2,因为相同及更高版本支持资源名称限定符(sw720 等)。
尝试使用 a.xml 和 b.xml 文件添加 layout-large 和 layout-xlarge 文件夹。
检查此网址 http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch
关于android - 资源限定符应该如何应对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15264886/