安卓:R.drawable为何无法显示我的图片?

17

在我的Android 2.2应用程序中,我已将我的图片添加到res/drawable-mdpi文件夹中。但是,我似乎无法使用R.drawable来访问它。据我所知,我不需要进行任何额外的配置 - 有什么帮助吗?

注:该段落为对一个 Android 开发相关问题的描述,提问者遇到了在项目中添加图片资源后无法获取其 R.drawable 对应值的问题。

1
没关系,我已经解决了。由于某种原因,它正在导入android.R。 - Andy Hin
2
当你在导入R时不小心操作,就会出现这种情况。 - Haphazard
你能分享一下问题是什么吗?这会对其他人有所帮助。所以请尽量描述出错误信息。 - Pankaj Kumar
嘿,Pankaj,我已经添加了自己的答案。 - Andy Hin
8个回答

38

我弄清楚了。问题是项目导入了android.R,而没有使用生成的R文件-如果你遇到这个问题,请检查你的导入,确保正确的包/文件被导入。


10

在导入生成的R文件时,您需要使用完全限定名称。检查您的导入语句。

请参考以下包声明:

package me.rhys.example;

然后生成的 R 文件可以使用以下方式导入:

import me.rhys.example.R;

在添加所需的可绘制资源并重新构建应用程序后,这就是您所需要的全部。 - Machado

2

我曾经因为不同的原因遇到了相同的问题。在我的情况下,我的图像文件名中有非法字符,并且没有注意到控制台的错误提示信息。

我将 icon-1.png 重命名为 icon_1.png 后问题得以解决。


1
致敬Andy Hin 如果导入了"android.R",就会出现这个问题。 只需检查您的导入并删除"android.R"行即可。 对我有用。

1

曾经遇到过同样的错误,我没有正确导入内容(图片),而是将其复制到drawable-hdpi文件夹中,结果并没有生成R常量ID,你必须导入它,而不仅仅是把它放在那里。


1
首先点击 Build -> Rebuild Project 以便直接从Gradle获取帮助。
然后请检查您的基于文件的资源名称是否必须仅包含小写字母a-z、0-9或下划线。

0
如果您想导入一个文件,例如一个图像文件,那么您需要进入res/drawable-XXXX目录,右键单击文件夹,然后选择“导入”,在设置中选择通用文件,进入图像所在的文件夹并选择要导入的文件... Netbeans会自动完成此操作,但是Eclipse缺少此功能。

0

按照以下步骤,我成功解决了问题:

配置 -> SDK 管理器 -> Android SDK -> SDK 工具 -> 勾选 NDK -> 应用

重新启动项目


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