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'
答案 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)
希望它会起作用。
答案 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)
它说不能解析符号,但是可以运行。
就我而言,我只是将所需的* .jar文件重新加载到libs文件夹中。
文件>>使缓存/重启无效
重建项目
同步
运行
为我工作!
看来该库第一次没有正确加载我的“导入”。
这就是为什么在我的 main_activity.xml 中看不到导入方法的原因。
答案 9 :(得分:0)
当我在不同的SDK版本之间来回切换时,这发生在我身上。
显然,SDK管理器复制了所有源文件,但未完全完成。结果,我可以很好地编译和运行项目,但是IDE无法识别SDK,并报告了所有未解析的Java符号。
以上所有解决方案和SO中的其他解决方案均不适用于我,但是仅卸载/重新安装特定的SDK版本即可完成工作。