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

时间:2013-09-24 20:12:23

标签: java android intellij-idea android-activity android-studio

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

SDK class - cannot find symbol

Click here for full-size image

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

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

10 个答案:

答案 0 :(得分:116)

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

你可以做“文件” - > “使高速缓存无效...”,并选择“无效并重新启动”选项以解决此问题。

答案 1 :(得分:5)

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

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

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

答案 2 :(得分:3)

尝试将库添加到Project Structure

要执行此操作,请在菜单上选择File - > Project Structure。选择Libraries选项,然后点击绿色+添加您的库。

答案 3 :(得分:1)

在我当前的项目中切换分支后,这总是发生在我身上:IDE报告了很多非感知错误。

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

答案 4 :(得分:1)

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

Android Studio再次为您的项目创建 .idea .gradle 文件。之后,点击使用gradle同步项目。现在一切正常。

答案 5 :(得分:0)

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

  

将光标置于带红色下划线的代码和Alt + Enter

enter image description here

  

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

enter image description here

  

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

enter image description here

希望这对某人有帮助。

答案 6 :(得分:0)

尝试以下步骤:

  1. 关闭项目,然后在项目文件夹中删除项目/.idea
  2. 也删除/.gradle文件夹
  3. 从Android Studio左上角的菜单中选择File选项
  4. 选择选项:Invalidate Cache/Restart将打开一个对话框
  5. 单击带有选项的第一个按钮:Invalidate and Restart

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

答案 7 :(得分:0)

仅对我有用

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

答案 8 :(得分:0)

这对我有用:

转到File-> Sync Project with Gradle Files

答案 9 :(得分:0)

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