15

我的 gen/r.java 文件有问题。当我在 layout /values/strings.xml 等资源中创建或编辑文件时,r.java 文件不会更新。我遵循了一个教程,由于某种原因它不会更新。xml 文件中没有错误。

我听说有人说“使用清理/构建”等,但这只是删除了 r.java 文件,经过多次尝试后我无法取回它。这导致我不得不再次重做整个项目才能取回 gen 文件。为什么会这样?

4

12 回答 12

9

项目-> 清洁对我有用。R.java 被删除并自动生成。

于 2012-01-05T05:36:39.520 回答
6

我之前遇到过这个问题,我发现只有在编辑 Mainfest.xml 文件后才会生成 R.java 文件。因此,只需快速更改该文件即可。

于 2011-04-28T20:16:26.063 回答
5

这对你有用..... Go project > clean。它将生成您的 R.java,或者您可以删除您的 R.java,Eclipse 将自动生成您的 R.java。

于 2012-10-05T07:21:56.787 回答
1

我有同样的问题,当我检查 tab 时Console,有红线解释我在可绘制文件夹中的图片名称文件错误。重命名后,一切正常。

于 2014-09-25T16:45:02.150 回答
1

我在我的项目中面临同样的问题。确保任何 xml 文件中都没有错误。如果包含错误 R.java 文件的 xml 之一没有更新。

于 2013-07-27T20:05:11.100 回答
1

这很可能是因为您没有遵守 res 文件夹中的适当命名约定。我遇到了同样的问题 - 使用 intellij IDE - 右键单击​​ res 文件并点击“强制重新生成 R”。Intellij 告诉我:

无效的文件名:必须只包含 [a-z0-9]

因此,除了其他人在这里所说的之外,请检查您的命名约定,并确保您在放入 res 文件夹的文件中没有包含任何大写字母、下划线、破折号等。

于 2012-03-04T08:17:00.557 回答
1

您应该检查您的清单文件以获取软件包的正确路径。通常,当进行更改时,我们会忘记 MainActivity 的类路径,或者我们重命名主类或包。然后删除 R 文件并执行 Project -> Clean 以重新生成 R 文件。希望这可以帮助。

于 2013-09-14T04:23:21.853 回答
1

问题可能是您在文件的开头或附近有“import android.R”。如果是这种情况,请删除该行并重试。

于 2015-10-30T17:00:55.727 回答
0

大师总是有办法的。(所有解决方案都不好)

经验胜于一切

如果您的问题是“gen/R.java”没有更新您声明的新 ID、DRAWABLE 或字符串,那仅仅是因为您的一个或一些 XML 页面中存在致命错误。

  • 1:大多数时候是res/values/string.xml文件,所以进入文件,点击“ressources”右边的“XML View”,你肯定会注意到右边有一个红色标记或XML 页面的左侧。

    • 专注于它:
      • 您可以阅读类似“错误:撇号前面没有\ (...)”的内容。这意味着在您的文本中,有一个或多个撇号。解决方案是在所有撇号前面加上 \ 反斜杠。-
        • 您可以按 : CTRL+F 修复所有撇号,并在第一个框中插入撇号('),然后在第二个框中插入 \'。然后单击对话框底部的“全部替换”按钮。
  • 2:给我你的错误,我会在不到 1 小时内回复你

于 2015-02-28T00:58:09.327 回答
0

我以前也遇到过这个问题,这里有一些方法可以解决它

1. make sure in the Manifest.xml that the package is set to the right name.
2. make sure your gen matches your package name example 

gen/com.expample.pack/R.java

我还发现,如果你在 Eclipse 中编辑它,它会重新生成。

于 2012-03-04T08:27:37.730 回答
0

检查 ID foreach UI 是否像

android:id="@android:id/tabs"

我有同样的问题,并以这种方式改变:

android:id="@+id/tabs"

解决了问题!

于 2012-01-31T09:43:15.880 回答
-1

在我的应用程序 res 文件夹下的文件中使用骆驼命名约定时出现此错误。

我已经纠正了它们并清理了我的项目,它解决了我的问题。

于 2015-09-02T13:52:37.983 回答