Android Studio 构建文件 R 损坏

Android Studio build file R broken

我正在开发一个 android 应用程序,该应用程序已经运行并经过多次测试。然而,今天,在尝试对 运行 应用程序进行进一步测试时,我遇到了以下错误消息:

C:\Users00\AndroidStudioProjects\WarofSol\app\build\generated\source\r\debug\com\blacktentdigital\warofsol\R.java
Error:(1251, 32) error: identifier expected
Error:(1251, 34) error: illegal start of type
Error:(1251, 35) error: identifier expected
Error:Execution failed for task ':app:compileDebugJava'.
Compilation failed; see the compiler error output for details.

>Information:BUILD FAILED

问题出在 R.java 文件中(如上所列)。这是一个生成的文件,所以我从来没有碰过它。

违规行是这样的:

public static final class drawable {
    public static final int 3=0x7f020000;

将鼠标悬停在违规行上会出现以下警告:"Identifier expected | Unexpected token"

与其他 R 文件的比较表明“3”不应该是 3,而且显然已损坏。

尝试用旧的备份版本替换行或文件没有产生任何结果,因为(显然)每次我尝试构建时文件都以错误的方式重新生成,我不知道是什么原因造成的这个。正如我所说,这个问题突然出现,没有任何我知道的挑衅。

我也试过关闭程序并重新启动计算机无济于事。

关于可能导致此问题的原因以及如何修复它的任何想法?

当我像这样在 xml 文件中定义一个字符串时,我确实遇到了同样的错误。

<string name="3">Settings</string>

错误:

Error:(1426, 32) error: <identifier> expected
Error:(1426, 34) error: illegal start of type
Error:(1426, 35) error: <identifier> expected
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED

解决方案:Resource name must begin with character。 所以我只是像 <string name="S3">Settings</string> 一样更改了字符串并且它起作用了。

因此,只需检查您所有的资源文件(string.xml、style.xml、attrs.xml)和文件夹(drawable、layout)中是否有资源名称 3。

这是引用自 java 文档:

A variable's name can be any legal identifier — an unlimited-length sequence of Unicode letters and digits, beginning with a letter, the dollar sign "$", or the underscore character "_".

并且您用数字命名了 drawable,这导致了问题。