我使用以下方法将矢量资源添加到了 Wear os 项目中,但无法使用以下方式访问它:
ContextCompat.getDrawable(mContext,R.drawable.ic_settings);
Run Code Online (Sandbox Code Playgroud)
它似乎没有找到该资产。我有 Drawable 目录并查看其中的资源。我打开xml文件,出现错误:
“drawable 中的可绘制‘ic_settings’在基本可绘制文件夹或可绘制密度dpi 文件夹中没有声明;当在与此限定符不匹配的配置中查询可绘制时,这可能会导致崩溃”
我不懂这啥意思。我刚刚使用“新建”->“矢量资源”菜单添加了它。有人知道如何解决这个问题吗?
此外,我在drawable目录中有一个roundbutton.xml,它在另一段代码中由R.drawable引用,并且没有错误。
更新
完成所有检查后(是可绘制目录中的资产),我关闭并重新启动 Android Studio,它识别了它们。重新启动吧。感谢大家的回复。我将选择最有帮助的一个作为答案。
最近看到同样的消息,但原因是文件名中的连字符。我已将文件keyboard_alt-48px.xml直接复制到可绘制目录中:
重命名以删除连字符解决了问题。
作为参考,尝试再次使用文件名中的连字符重命名,然后突出显示为无效资源名称:
问题是您的资源特定于某个配置,因此如果配置与设备设置不匹配,则资源无法找到可绘制对象,并会导致崩溃。
一些变体是:
- drawable (base, if not found in any folder)
- drawable-ldpi (low-resolution devices will look into it)
- drawable-mdpi (medium-resolution devices will look into it)
- drawable-v24 (devices with API level v24 or v24+ will look into it)
Run Code Online (Sandbox Code Playgroud)
有关更多信息,您可以查看:https ://developer.android.com/training/multiscreen/screendensities
要解决这个问题:
转到Android窗口并展开app > res > drawable,找到可绘制对象,然后右键单击它。从菜单转到重构 > 移动文件...

从文本编辑框中删除单词“ drawable ”后面的子字符串(在图像中,您可以在我们应该删除的drawable单词后面
看到“ -xxxhdpi ”),然后按重构。
现在,你可以走了。
| 归档时间: |
|
| 查看次数: |
6453 次 |
| 最近记录: |