Android Studio“无法解析符号R”,但项目会编译并运行

时间:2018-11-18 11:15:03

标签: android-studio

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

我在这里尝试了所有解决方案: Android Studio "cannot resolve symbol" but project compiles and works,但没有运气。

我试图:

  • 使缓存无效并重新启动android studio

  • 删除.gradle和.idea文件夹

  • 清理并重建项目

  • 安装新版本的android studio

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

我想尝试的一件事,但我不知道如何实现,是在我第一次打开该项目时从头开始重新打开该项目,但我不知道如何执行此操作。 / p>

我也从这里尝试了答案: Android Studio says "cannot resolve symbol" but project compiles, 但还是没有运气。

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'

10 个答案:

答案 0 :(得分:8)

由于某种原因,我不明白,

构建版本的组合产生了问题:

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'

问题已解决!

答案 1 :(得分:1)

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

希望它会起作用。

答案 2 :(得分:1)

您的xml中语法或拼写有误吗?

检查布局或任何xml文件。

答案 3 :(得分:1)

Android Studio似乎偶尔会出现R.java的缓存问题。我很少有这个问题,但是当我这样做时,我实际上打开了R.java(按两下Shift键并键入“ R.java”)或导航到“ app / build / generated / source”目录下的R.java,打开文件,并检查是否已创建相关的XML ID。如果有,它将强制Android Studio现在识别未解析的ID。可以快速尝试,并且不需要清理和重建。

答案 4 :(得分:0)

从程序菜单中,打开android studio。选择从计算机打开一个项目,然后找到该项目的路径,而不是从最近的文件中打开项目。当其他所有方法都失败时,有时这是可行的。

此外,请尝试从gradle实现中注释掉支持库,同步项目,然后在同步失败后重新注释它们,然后再次同步。 (不知道那是您说过弄乱gradle文件时是否已经尝试过了)

答案 5 :(得分:0)

就我而言

我正在使用  -家里的Android Studio版本3.3.1  -办公室的Android Studio版本3.2.1

当我将最初在家用计算机上创建的项目拉到办公室计算机上时, Android Studio无法解析R文件,但运行应用程序没有错误。因为项目gradle和Android Studio版本不兼容。

您唯一要做的是在项目级别的gradle文件中更改gradle版本

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

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

答案 6 :(得分:0)

我面临着同样的问题,

首先想到的问题可能是由于某些xml文件或可绘制资源的命名不正确。经过分析,该案例不适用于我。 所以

  

将Android Studio从旧版本3.2更新到新版本3.3.2以及SDK管理器中的新构建工具版本解决了此问题   对我来说。

我尝试使缓存无效,并使用干净的Rebuild AS重新启动所有选项,但对我不起作用。

希望这会有所帮助。

答案 7 :(得分:0)

有时,由于android清单上的软件包名称与您拥有的软件包模块不匹配,所以未生成R文件。

答案 8 :(得分:0)

它说不能解析符号,但是可以运行。

  1. 就我而言,我只是将所需的* .jar文件重新加载到libs文件夹中。

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

  3. 重建项目

  4. 同步

  5. 运行

为我工作!
看来该库第一次没有正确加载我的“导入”。
这就是为什么在我的 main_activity.xml 中看不到导入方法的原因。

答案 9 :(得分:0)

当我在不同的SDK版本之间来回切换时,这发生在我身上。

显然,SDK管理器复制了所有源文件,但未完全完成。结果,我可以很好地编译和运行项目,但是IDE无法识别SDK,并报告了所有未解析的Java符号。

以上所有解决方案和SO中的其他解决方案均不适用于我,但是仅卸载/重新安装特定的SDK版本即可完成工作。