错误“无法解析符号 R”仅在一个文件中

Posted

技术标签:

【中文标题】错误“无法解析符号 R”仅在一个文件中【英文标题】:Error "Cannot resolve symbol R" only in one file 【发布时间】:2022-01-11 22:41:52 【问题描述】:

启用视图绑定时,我无法再引用自定义 RecyclerView 适配器中的资源文件。我收到一个错误“无法解析符号 R”,它尝试自动导入 R,这是错误的。无论如何,这不会发生在 Activity 中。 (我已经尝试过检查所有 xml 文件,清理并重建项目。)

为什么会这样?

活动截图(一切正常):

自定义适配器 - 无法解析符号 R:

编辑:

我不明白的是为什么我创建一个没有视图绑定的项目时没有这样的错误?下面是另一个测试应用程序中的自定义适配器示例,其中没有发现 R 存在问题:

问题是,什么情况下需要导入package.R? 为什么不总是需要它?当突然 R 在特定文件中没有得到解决并且 android Studio 尝试导入 package.R 时,我怎么知道一切都是正确的?

【问题讨论】:

那么,为什么我们认为这个错误是“错误的”。到底是什么? 我多次遇到不应该导入 R 的信息。例如,this article 声明:“Eclipse 有时喜欢在文件顶部添加“import android.R”语句使用资源,尤其是当您要求 Eclipse 对导入进行排序或以其他方式管理时。这将导致您的 make 中断。请注意这些错误的导入语句并将其删除。" 并且当我不使用视图绑定时不会出现错误。另外,在 Activity 中,即使使用 View 绑定也不会出现错误。我不明白 您需要为您的特定项目导入R。文章说应该避免导入android.R,所以只要不导入应该可以做import <your.project.path>.R之类的事情 @user3170251 "你需要为你的具体项目导入R" 其实我还是第一次遇到这种情况。请看我的编辑 【参考方案1】:

我发现当 Java 文件位于包的子文件夹(例如,ui 文件夹)中时,R 解析的错误就开始了。 然后Android Studio开始导入package.R

例如,在这种情况下:

package com.example.test3;

没有 R 错误。但是在这个:

package com.example.test3.ui;

R 未解析并自动导入。

也许这是预期的行为。

【讨论】:

以上是关于错误“无法解析符号 R”仅在一个文件中的主要内容,如果未能解决你的问题,请参考以下文章

迁移到 Androidx 后无法解析符号 R

更改 Min Sdk 版本后“无法解析符号 'R'”? [复制]

android无法解析符号R [重复]

无法解析符号 R

Android Studio:无法解析符号 R [重复]

为啥我无法解析符号“R”? [复制]