转换失败:无法将@drawable/转换为可绘制项。

27

我已经在我的Android项目中添加了一张图片,我想在UI中使用它。我将文件my-image.png添加到drawable目录(添加到创建的所有4个drawable目录中),并将ImageView添加到布局中:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:layout_alignParentBottom="true"
    android:layout_alignLeft="@+id/textView"
    android:layout_marginBottom="63dp"
    android:src="@drawable/my-image" />

问题是我遇到了以下错误:

渲染问题

无法将@drawable/my-image转换为可绘制项

这是截图:

enter image description here

此外,如果我尝试编译项目,我会收到以下错误:

Gradle: Execution failed for task ':MyProject:processDebugResources'.

我为什么会收到这些错误,并且该如何解决?我有什么遗漏吗?我刚开始学习Android开发。

6个回答

57
Gradle: Execution failed for task ':MyProject:processDebugResources'.

由于您在资源中存在命名约定错误

file name: must contain only [a-z0-9_.]

将文件名更改为my_image


5
Rename this drawable @drawable/my-image to @drawable/my_image 

5

尝试在文件名中使用下划线和小写字母,例如

my_image.png


2

尽量使用 abc...xyz 和 0123...9,不要使用 -,而是使用 _(下划线)。

使用 my_name 而不是 my-name,因为连字符(-)在编码中具有特殊含义,因此不能直接与字符串一起使用。


避免在字符串中使用连字符的原因是什么? - EWit
远离数字,资源名称不能以数字开头。 - Daniel Wilson

0
如果命名规范正确,请尝试:
打开资源对话框,查看是否显示图像PNG预览。
在设计视图中选择图像 > 转到属性 > 单击省略号按钮 > Drawable > 搜索您的PNG图像并单击它。
如果预览未显示,请取消资源,并尝试再次以PNG格式保存图像。
此示例使用Photoshop CS2。在Photoshop中打开图像,选择“文件 > 保存为Web > 单击保存”(不要使用“文件 > 另存为”)。

-1

它对我起作用了,你不应该包含特殊字符,只能包含字母


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接