Android Studio 无法解析符号,但代码正确执行

Posted

技术标签:

【中文标题】Android Studio 无法解析符号,但代码正确执行【英文标题】:Android Studio cannot resolve symbol but code executes correctly 【发布时间】:2013-09-30 05:35:29 【问题描述】:

我最近创建了一个库 Jar 文件,并将其导入到我的 android 项目中。我能够调用函数并使用此 Jar 文件中存在的类,但 Android Studio 一直告诉我它无法“解析我正在使用的类的符号”。请看下面的截图:

Click here for full-size image

代码构建并成功执行。函数isThisThingWorking() 只返回true,而这正是boolean blah 的设置。

我尝试按下Sync Project with Gradle Files 按钮并使用Android Studio 的File 菜单中的Invalidate Caches / Restart... 选项,但这些都没有解决问题。如何让Android Studio IDE不显示Cannot resolve symbol 'xxxSDK'错误?

【问题讨论】:

什么意思?我已经接受了解决我的具体问题的答案。这里投票最多的答案适用于大多数有相同问题的人。不幸的是,我不熟悉任何其他解决方案。 @grAPPfruit 问题的前提不同,发布日期早于您链接的问题。 在 2018 年,当您的 Android Studio 和 Gradle 不一致时,仍然会发生这种情况。我使用此处讨论的三个选项对其进行了修复:***.com/questions/50313885/… 相关帖子 - Android Studio suddenly cannot resolve symbols & Android Studio says “cannot resolve symbol” but project compiles 【参考方案1】:

尝试将库添加到Project Structure

为此,在菜单上选择File -> Project Structure。选择Libraries 选项并单击绿色的+ 以添加您的库。

【讨论】:

我已经通过右键单击 Jar 并选择 Add as Library 选项将其添加到那里。【参考方案2】:

编辑:对于大多数人来说,Senthil's answer 会更合适。我将这个作为接受的答案,因为它解决了我的具体问题。

我发现了问题 - 我的 SDK.jar 没有正确生成。它包含.java 文件而不是.class 文件。这解释了为什么 IDE 无法找到 SDK 类。 Jar 中的包结构仍然正确,这就是包名本身不是红色的原因。代码工作正常,因为编译器知道要编译 .java 文件。

为了解决这个问题,我在创建 Jar 时修改了我的 SDK 项目的 build.gradle 以包含 .class 文件,而不是 .java 文件。包含这个新 Jar 而不是旧 Jar 修复了 IDE 问题。

【讨论】:

这是有道理的。如果 .jar 不属于我怎么办。如何将它从 .java 获取到 .class? 您必须编译 Java 文件。 抱歉,我没有对“.java”文件的依赖。你能从你的 build.gradle 文件中发布这行吗? 你有什么样的依赖?【参考方案3】:

当 IntelliJ IDEA 由于操作系统崩溃而突然关闭时,我遇到了这个问题。

您可以执行“文件”->“使缓存无效...”,然后选择“无效并重新启动”选项来解决此问题。

【讨论】:

谢谢 :) 我的问题是在操作系统崩溃后 :D 经过一番加扰,这个修好了,它。它主要发生在 Eclipse 导入的项目中。 感谢您发布此信息。这是正确的解决方案。 这为我节省了很多时间! 谢谢!我花了大约三天时间遵循其他解决方案,但在我这样做之前没有一个完全有效!【参考方案4】:

在我当前项目的分支上切换后总是发生这种情况:IDE 报告了很多无意义的错误。

解决方案是修改并强制build.gradle同步

【讨论】:

【参考方案5】:

更改语言注入设置对我有用。

将光标放在任何带红色下划线的代码和Alt + Enter

现在选择Language Injection Settings,将打开一个窗口,如下所示。

确保您在ID: 字段中选择了正确的文件类型并取消选中与您的错误代码相关的选项,然后单击确定

希望这对某人有所帮助。

【讨论】:

【参考方案6】:

尝试以下步骤:

    关闭你的项目然后在你的项目文件夹中删除项目/.idea 同时删除/.gradle文件夹 不要从 android studio 左上角的菜单中选择 File 选项 选择选项:Invalidate Cache/Restart 它将打开一个对话框 单击第一个带有选项的按钮:Invalidate and Restart

尝试上述选项后,一切都应该正常。

【讨论】:

【参考方案7】:

这个问题在android 3.1 中经常产生。我已经尝试了所有可能的方法。但是当我删除 .gradle.idea 文件并启动已经关闭的 Android Studio 时它解决了。

Android Studio 再次为您的项目创建 .idea.gradle 文件。之后点击sync project with gradle。现在一切正常。

【讨论】:

【参考方案8】:

只为我工作

文件 -> 打开 -> 并点击 build.gradle 重新打开项目

【讨论】:

【参考方案9】:

这对我有用:

转到File -> Sync Project with Gradle Files

【讨论】:

【参考方案10】:

关闭 Android Studio 并删除构建文件夹。如有必要,重新打开 Android Studio 并按“与 Gradle 同步”。这是唯一可行的方法。

【讨论】:

以上是关于Android Studio 无法解析符号,但代码正确执行的主要内容,如果未能解决你的问题,请参考以下文章

无法解析符号“android:TextApperance.Material”Android Studio

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

无法在Android Studio中解析符号'annotation'?

Android Studio 和 android.support.v4.app.Fragment:无法解析符号

无法在 Android Studio 2.0 中解析符号 R [重复]

无法解析符号'setOnClickListener' - Android Studio