In every instance in all of my classes where I reference R.id.something, the R is in red and it says "cannot resolve symbol R". Also every time there is R.layout.something it is underlined in red and says "cannot resolve method setContentView(?)". The project always builds fine. It is annoying to see this all the time. I have read many other questions on here about something similar but most involved importing projects from Eclipse. I am using what I believe to be the most recent version of Android Studio and the project was created with Android Studio and worked without any "cannot resolve R" problems. I would like to know what causes this if anyone knows.


当前回答

我想我有终极解决方案了。我做了一项研究,发现Android Studio讨厌在安装路径或目录中设置“空白”。它不接受放置在包含空白的目录中的SDK。例如

C: \ Program Files \ Android \ sdk (x86)

此目录无效,因为它包含空白。在这里,我已经回答了一个问题,一个人无法在Android Studio中更改他的JDK路径,因为他的SDK目录中有一个空白。这很奇怪,但似乎Android Studio讨厌有空格的目录。所以解是-

将Android Studio和Android SDK安装在一个没有任何空白的目录或路径中。

例如-安装Android Studio

C:\AndroidStudio\

并安装Android SDK

C:\Sdk\

这两个目录都是有效的,因为没有任何空白。每个不包含空格的路径都是有效的。它还解决了其他问题,如“Failed to resolve: junit:junit:4.12”或“Gradle同步项目失败”等。

其他回答

上面的答案对我没有帮助。我最终意识到问题在于Android Studio中缺少“build”文件夹。我在项目“iml”文件中发现了一些行,不包括“build/*”。删除这些错误后,生成文件就出现了,错误就消失了。

还有一件事要尝试……

删除Build文件夹 通过同步gradle重新构建项目

我已经试过很多其他的建议了,比如

清洁项目, 重新启动Android Studio, 修复错误在我的xml, 同步项目与Gradle文件,以及 更新构建工具版本,

但这些都不起作用。

我最终手动删除了整个构建文件夹(在备份我的项目后),然后重新启动Android Studio。之后,我在我的应用程序构建中做了一个小编辑(添加和删除一个空格)。Gradle文件,然后点击同步。(我可能只需要从菜单中使用Gradle文件完成Tools > Android > Sync Project。)从那以后,它起作用了。在构建文件夹中已经损坏了一些东西,并开始与一个新的构建修复它。

我不知道有没有人读到这么远的答案,但我还是要加上这个答案。

造成这个错误的原因有很多。

有时在替换同名的映像文件时会出现这种情况。 假设你从布局。xml中删除了一个项目,比如<Button/>,但它仍然在任何Activity或Fragment .java中声明。 更多。

跟踪错误的最佳方法是重建它,而不是清除或同步一些故意的错误。

如果它不能解决你的问题,那么一定有一些缺陷或运行时错误或错误发生,由于在你的代码或设计中的java或xml文件中的资源使用不当,这迫使gradle停止,因为(R)源文件不能正确索引你的资源,你必须承认这一点。

如果您的项目在进行更改之前已运行,则注释掉所做的更改并尝试重新构建项目。

它肯定会起作用,因为不会有任何变化。

要跟踪准确的错误,可以通过将更改分解为更小的模块来检查更改。

例如,如果您通过单击按钮并在适配器中插入列表值来使列表可见,首先检查是否能够使其可见,然后检查适配器错误。

在我的情况下,我需要修复我的布局XML文件中的一些错误。没有指示文件包含错误的图标。然而,当我点击它们时,我注意到一些红线。修好后,找到了R。

这些在Ubuntu 12.04上都不适用。我必须做到以下几点:

sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

在那之后,我遵循了这个线程中的其他一些建议,做了Build ->清洁项目,一切都很好。