在 2019 年我遇到了同样的问题,我在互联网上搜索了以下内容,与大家分享。
在 android studio 中,字母 R 代表资源,出现此错误是因为构建过程无法与您的项目同步资源。换句话说,当 Android Studio 无法正确生成您的 R.java 文件时会导致此错误。
当您将代码转移到另一个系统或第一次构建 android 项目时,会发生此问题。因此,当您创建新活动或新类时,您会看到一条错误消息,例如“无法解析符号 r”,并带有红色下划线。
您可以在下面找到解决 android studio 中无法解析符号 r 的可能方法。
将项目 Gradle 更新到最新版本
始终使用最新版本的 Gradle 才能正常工作。
使用 Gradle 文件同步项目
更新 Gradle 插件后,您需要将项目与 Gradle 文件同步。
打开 android studio 并点击 Files > Sync Project with Gradle Files 选项。
清理和重建项目
最有效的解决方案是最简单的:清理并重建您的项目。从 Android Studio 工具栏中选择 Build > Clean Project,稍等片刻,然后通过选择 Build > Rebuild Project 构建您的项目。
使缓存无效/重新启动
如果您在移动一些文件和目录后遇到此错误,那么 R.layout 错误可能是由于 Android Studio 的缓存与您项目的当前布局不匹配造成的。如果您怀疑可能是这种情况,请从 Android Studio 的工具栏中选择 File > Invalidate Caches / Restart > Invalidate and Restart。
资源名称的问题也可能会阻止正确创建 R.java 文件,因此请检查您没有多个具有相同名称的资源,并且您的文件名中没有包含无效字符。 Android Studio 仅支持小写 a-z、0-9、句号和下划线,单个无效字符可能会导致整个项目出现 R.layout 错误,即使您实际上并未在项目中的任何位置使用此资源!
我的问题及其解决方案:
就我而言,我应用了上述所有方法,但无法解决问题。因此,我开始了一个新项目,并一一粘贴了我的代码,并通过运行应用程序验证了我的代码。最后,当我第一次删除colors.xml中的代码并将下面的代码复制并粘贴到colors.xml文件中时,我得到了错误。
<color name="bg_login">#26ae90</color>
<color name="bg_register">#2e3237</color>
<color name="bg_main">#428bca</color>
<color name="white">#ffffff</color>
<color name="input_login">#222222</color>
<color name="input_login_hint">#999999</color>
<color name="input_register">#888888</color>
<color name="input_register_bg">#3b4148</color>
<color name="input_register_hint">#5e6266</color>
<color name="btn_login">#26ae90</color>
<color name="btn_login_bg">#eceef1</color>
<color name="lbl_name">#333333</color>
<color name="btn_logut_bg">#ff6861</color>
当我撤消更改时,错误再次消失。因此,我在 colors.xml 中的代码不是上面的代码,并且代码已经在 colors.xml 中,即
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
<color name="bg_login">#26ae90</color>
<color name="bg_register">#2e3237</color>
<color name="bg_main">#428bca</color>
<color name="white">#ffffff</color>
<color name="input_login">#222222</color>
<color name="input_login_hint">#999999</color>
<color name="input_register">#888888</color>
<color name="input_register_bg">#3b4148</color>
<color name="input_register_hint">#5e6266</color>
<color name="btn_login">#26ae90</color>
<color name="btn_login_bg">#eceef1</color>
<color name="lbl_name">#333333</color>
<color name="btn_logut_bg">#ff6861</color>
“可能是因为我没有定义原色”
希望它对像我这样的编程新手有所帮助。