drawable 中的 drawable "ic_settings" 在 base drawable 文件夹中没有声明
The drawable "ic_settings" in drawable has no declaration in the base drawable folder
我将矢量资产添加到 wear os 项目中,使用但无法访问它:
ContextCompat.getDrawable(mContext,R.drawable.ic_settings);
它似乎没有找到资产。我有 Drawable 目录并看到其中的资产。我打开 xml 文件,出现错误:
"drawable 中的 drawable 'ic_settings' 在基本 drawable 文件夹或 drawable-densitydpi 文件夹中没有声明;当在不匹配的配置中查询 drawable 时,这可能会导致崩溃这个限定词
我不知道这是什么意思。我只是使用 New -> Vector Asset 菜单添加了它。有人知道如何解决这个问题吗?
这是代码中的一行:
这是 android 工作室中的位置:
当我查看文件时:
此外,我在drawable目录中有一个roundbutton.xml,在另一段代码中被R.drawable引用,并且没有错误。
更新
完成所有检查后(可绘制目录中的资产),我 closed 并重新启动 Android Studio,它识别了它们。你们重新启动。感谢大家的回复。我要 select 帮助 most 的那个作为答案。
问题是您的资产是特定于特定配置的,因此如果配置与设备设置不匹配,则无法通过资源找到可绘制对象,从而导致崩溃。
一些变体是:
- 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)
更多信息,您可以查看:https://developer.android.com/training/multiscreen/screendensities
修复它:
转到Androidwindow并展开app > res > drawable,找到可绘制对象,并在其上 right-click 。从菜单转到 Refactor > Move File...
从文本编辑框中删除单词“drawable”之后的子字符串(在图像中您可以看到“-xxxhdpi" 在我们应该删除的可绘制单词之后)并按 Refactor。
现在,你可以开始了。
这在另一个文件的类似情况下帮助了我。
我重新做了很多工作来修复这个错误。在 IDE 编辑器中删除了文件的全部内容。重新输入并重新检查整个项目的内容大概 10 次。没有任何帮助。这看起来很神秘。
问题是这样解决的:
我删除了 ic_launcher_background.xml 文件。不安全。
并创造了一个新的。然后我再次输入了整个文本。
一切都变好了。
可能是文件中的一些隐藏控制字符干扰了。我不能再重蹈覆辙了。
我将矢量资产添加到 wear os 项目中,使用但无法访问它:
ContextCompat.getDrawable(mContext,R.drawable.ic_settings);
它似乎没有找到资产。我有 Drawable 目录并看到其中的资产。我打开 xml 文件,出现错误:
"drawable 中的 drawable 'ic_settings' 在基本 drawable 文件夹或 drawable-densitydpi 文件夹中没有声明;当在不匹配的配置中查询 drawable 时,这可能会导致崩溃这个限定词
我不知道这是什么意思。我只是使用 New -> Vector Asset 菜单添加了它。有人知道如何解决这个问题吗?
这是代码中的一行:
这是 android 工作室中的位置:
当我查看文件时:
此外,我在drawable目录中有一个roundbutton.xml,在另一段代码中被R.drawable引用,并且没有错误。
更新
完成所有检查后(可绘制目录中的资产),我 closed 并重新启动 Android Studio,它识别了它们。你们重新启动。感谢大家的回复。我要 select 帮助 most 的那个作为答案。
问题是您的资产是特定于特定配置的,因此如果配置与设备设置不匹配,则无法通过资源找到可绘制对象,从而导致崩溃。
一些变体是:
- 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)
更多信息,您可以查看:https://developer.android.com/training/multiscreen/screendensities
修复它:
转到Androidwindow并展开app > res > drawable,找到可绘制对象,并在其上 right-click 。从菜单转到 Refactor > Move File...
从文本编辑框中删除单词“drawable”之后的子字符串(在图像中您可以看到“-xxxhdpi" 在我们应该删除的可绘制单词之后)并按 Refactor。
现在,你可以开始了。
这在另一个文件的类似情况下帮助了我。 我重新做了很多工作来修复这个错误。在 IDE 编辑器中删除了文件的全部内容。重新输入并重新检查整个项目的内容大概 10 次。没有任何帮助。这看起来很神秘。 问题是这样解决的: 我删除了 ic_launcher_background.xml 文件。不安全。 并创造了一个新的。然后我再次输入了整个文本。 一切都变好了。
可能是文件中的一些隐藏控制字符干扰了。我不能再重蹈覆辙了。