Android Studio“无法解析符号R”,但项目可以编译和运行。

7

Android Studio中所有java文件都会以红色显示:“无法解析符号R”,但是项目可以编译和运行。

我尝试了这里的每个解决方案:Android Studio“无法解析符号”但项目可以编译和工作,但是没有成功。

我尝试过:

  • 无效缓存并重新启动Android Studio

  • 删除.gradle和.idea文件夹

  • 清理和重建项目

  • 安装新版本的Android Studio

  • 捣乱gradle文件,然后撤消更改并同步项目

我想尝试的一件事是从头开始重新打开项目,就像我第一次打开它一样,但我不知道如何做到这一点。

我还尝试了这里的答案:Android Studio说“无法解析符号”,但是项目可以编译,但仍然没有成功。

Android Studio版本= 3.2.1

Gradle项目文件中的依赖关系版本:

classpath 'com.android.tools.build:gradle:3.4.0-alpha01'
classpath 'com.google.gms:google-services:4.0.0'

另外,请检查您是否添加了具有不允许的名称的资源文件。它必须仅包含小写a-z、0-9或下划线。如果有任何不同,您将会遇到问题。 - George
执行 -> 使缓存失效 / 重新启动。 - Harshil kakadiya
14个回答

11
由于某些原因我不理解,这些构建版本的组合引起了问题:
grade version = 4.10.1

classpath 'com.android.tools.build:gradle:3.4.0-alpha01'

当我切换到这些构建版本时:

grade version = 4.6

classpath 'com.android.tools.build:gradle:3.2.1'

问题已解决!


2
我也是一样,尽管我离开了4.10.1,但我只是从com.android.tools.build:gradle:3.3.1 --> 3.2.1回退。 - CSmith
很遗憾,我的项目要求最低使用Gradle版本4.10.1。 - Aliton Oliveira

2
有时候,由于Android清单文件中的包名与您拥有的包模块不匹配,因此无法生成R文件。

2
  1. 文件 -> 关闭项目
  2. 打开现有的Android Studio项目
  3. 打开您的项目

希望它能正常工作。


1

您的xml文件中是否存在任何错误的语法或拼写错误?

检查您的布局或任何xml文件。


检查一下这个选项,OP。这是一个常见的问题。 - George
我正在处理一个大型项目,所以很难迭代所有布局文件以了解是否存在语法错误... 你知道有什么方法可以确定布局文件中是否有语法错误吗? - user2469133
@user2469133 试试分析->检查代码,然后你就能够在检查结果中找到一些错误和警告信息。 - eltoryn7

1

Android Studio 偶尔会出现 R.java 的缓存问题。我很少遇到这种问题,但当我遇到时,我实际上会打开 R.java(双击 shift 并输入 "R.java")或导航到 "app/build/generated/source" 目录下的 R.java,打开文件并检查相关的 XML id 是否已经创建。如果是,它会强制 Android Studio 现在识别未被解析的 id。这很快速,不需要清理和重建。


0
从程序菜单中打开Android Studio。 不要从最近文件中打开项目,选择从计算机打开项目,然后找到项目路径。当所有其他方法都失败时,有时这会奏效。
此外,请尝试在Gradle实现中注释掉支持库、同步项目,在同步失败后再取消注释并再次同步。(不确定当您说您已经处理了Gradle文件时是否尝试过这个方法)

我也尝试了这个方法,但并没有起作用。我甚至改变了项目位置并将其从Android Studio最近的项目中删除,然后再从新位置打开它,但似乎同步非常快,因为仍然有一些缓存存在! - user2469133
我也尝试了你在答案第二部分提到的方法(注释掉支持库......),但没有成功。 - user2469133

0

我曾经遇到过同样的问题,

最初认为这个问题可能是由于某些xml文件或drawable资源命名不正确导致的。但在分析后,发现这种情况并不适用于我。 所以

将Android Studio从旧版本3.2更新到新版本3.3.2,并通过SDK管理器更新新的构建工具版本,解决了我的问题。

我尝试了无效缓存和使用清洁重建所有选项重新启动AS,但对我没有起作用。


0
如果您重命名了包(在java文件夹内),请确保将清单包名称更改为相同的名称。

0

它说无法解析符号,但可以运行。

  1. 在我的情况下,我只需重新加载所需的*.jar文件到libs文件夹中。

  2. 文件 >> 无效缓存/重启

  3. 重新构建项目

  4. 同步

  5. 运行

对我有用!
看起来库没有正确加载我的“导入”第一次。
这就是为什么导入方法在我的main_activity.xml中无法看到。


0

只需前往项目设置:settings.gradle,并将rootProject.name更改为您当前的名称

rootProject.name = "在此处编写项目名称"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接