Android “可提取的”;ic“U设置”;in drawable在基本drawable文件夹中没有声明

Android “可提取的”;ic“U设置”;in drawable在基本drawable文件夹中没有声明,android,wear-os,Android,Wear Os,我使用将矢量资源添加到wear os项目中,但无法使用: ContextCompat.getDrawable(mContext,R.drawable.ic_settings); 它似乎没有找到资产。我有一个可绘制的目录,可以看到其中的资产。我打开了xml文件,出现了一个错误: “drawable中的drawable'ic_settings'在基本drawable文件夹或drawable densitydpi文件夹中没有声明;当在与此限定符不匹配的配置中查询drawable时,这可能导致崩溃”

我使用将矢量资源添加到wear os项目中,但无法使用:

ContextCompat.getDrawable(mContext,R.drawable.ic_settings);
它似乎没有找到资产。我有一个可绘制的目录,可以看到其中的资产。我打开了xml文件,出现了一个错误:

“drawable中的drawable'ic_settings'在基本drawable文件夹或drawable densitydpi文件夹中没有声明;当在与此限定符不匹配的配置中查询drawable时,这可能导致崩溃”

我不知道这意味着什么。我只是使用New->Vector Asset菜单添加了它。有人知道如何解决这个问题吗

以下是代码中的行:

以下是它在android studio中的位置:

当我查看文件时:

此外,我在drawable目录中有一个roundbutton.xml,它在另一段代码中由R.drawable引用,并且没有错误

更新


在完成所有检查(是drawable目录中的资产)之后,我关闭并重新启动了Android Studio,它识别出了它们。你要重新启动。谢谢大家的回复。我将选择最有帮助的一个作为答案。

问题是您的资产特定于某个配置,因此如果配置与设备设置不匹配,则资源无法找到可绘制文件,并将导致崩溃

有些变体是:

- 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)
有关更多信息,请参见:

要解决此问题,请执行以下操作:

  • 转到Android窗口并展开应用程序>res>可绘制的,找到可绘制的,然后右键单击它。从菜单转到重构>移动文件…

  • 从文本编辑框中删除单词“drawable”后的子字符串(在图像中,您可以看到我们应该删除的drawable单词后的“-xxxhdpi”),然后按重构。


  • 现在,您可以开始了。

    将其放入可绘制文件夹。它位于可绘制文件夹中。它已位于可绘制目录中。当我单击refactor时,会出现:“…/src/main/res/drawable”,因此当我尝试保存它时,会收到一条消息,表明它已经存在。