为什么 Java 文件在 android studio 中找不到 Drawable xml 文件?

Why Java file doesn't find the Drawable xml file in android studio?

我正在制作闹钟。在我的一个 java 文件中,我必须找到一个像这样的可绘制文件:layout.setBackgroundResource(R.drawable.view_touch_selector); 但是,它显示错误并显示 无法解析符号 view_touch_selector。我不知道为什么会这样,尽管我创建了相应的 view_touch_selector

更新(在原始android的回答之后):

无法解析符号 'R' 错误! 每个文件中的 'R' 变为红色。

我认为问题是在生成的R.java文件中没有创建view_touch_selector。这是一种异常现象(可能很常见),因此您必须尝试下面列出的一个或多个步骤(从 easiest/short 开始到更长的时间排序)。如果执行步骤 1,则进行编译。然后尝试第2步,然后编译,依此类推。 来自 Android Studio,使用文件或菜单栏:

  1. Select 项目树中的 res/drawable 文件夹和 select 文件 -> 同步。
  2. 菜单 -> 构建 -> 重建项目
  3. 菜单 -> 构建 -> 清理项目,然后构建它。
  4. 文件 -> 使缓存无效/重新启动
  5. 菜单工具 -> Android -> 将项目与 Gradle 个文件同步

想法是让 Studio 正确地重新编译您的 xml 文件; Eclipse 也有类似的问题。 最后,如果一切都失败了,请重命名您的包,强制对所有项目文件进行评估。警告,重命名包并不容易。 我从来没有为解决此类问题而这样做。

EDIT: R.java file is at few places. The directories listed here is generated by Android Studio. R.java is at

  • [project directory]\Application\build\generated\source\r\debug\com\example\android[package name]

There are intermediate files generated by compiler including view_touch_selector.xml:

  • [project directory]\Application\build\intermediates\res\debug\drawable

Another file to check, though this is rarely a problem I think, is workspace.xml. When you select File -> Synch, workspace.xml is updated. File is at [project directory].idea. Again this is using Android Studio.

In workspace.xml, it should include your xml files like:

layout url="file://$PROJECT_DIR$/Application/src/main/res/layout/view_touch_selector.xml">

Between R.java and workspace.xml, they should be updated to the latest date/time. And if you don't see the R.java file, then that's a major problem related to directories. You may have to create a new project.

祝你好运,Tommy Kwee