最近,我收到了大量的崩溃报告
android.content.res.Resources$NotFoundException: File res/drawable-xhdpi-v4/flag_au.png from drawable resource ID #0x7f0200bc
at android.content.res.Resources.loadDrawable(Resources.java:1970)
at android.content.res.Resources.getDrawable(Resources.java:660)
我感到奇怪,因为崩溃报告来自 Android 4.2 ,设备 @ Tab7QC-16
我确实有 xhdpi 中的资源。我希望Android 4.2应该从 xhdpi 中选择资源。
我不打算提供 drawable 文件夹。因为,我将把mdpi大小的图像放入其中。当目标设备将其扩展到xhdpi时,它看起来不会很好。
我认为我可以通过将文件夹xhdpi克隆到xhdpi-v4来“解决”崩溃。
但问题是,为什么Android 4会尝试从drawable-xhdpi-v4中获取资源?
答案 0 :(得分:4)
正如我所看到的,文件夹资源以完全相反的方式工作。
例如,限定符drawable-v4
指的是API级别4和更高,而不是更低。所以如果你有这些文件夹:
drawable-v15
文件夹代表API 15-23(截至目前),drawable-v4
代表API 4-14,drawable
代表API级别无法与之匹配以前的文件夹(因此API 1-3)。
在这种意义上,您应该重新格式化文件夹。
McCabe Cycolmatic Complexity官方文档中的参考页面。出于某种原因,此刻我只能用中文加载(我认为),但是看看谷歌缓存它似乎支持我的观点。