Android Studio突然无法解析符号


207

Android Studio 0.4.2运行良好,今天我将其打开,几乎所有内容均为红色,并且自动完成功能已停止工作。我查看了导入,AS似乎在告诉我它一下子找不到android.support.v4(为我提供了删除未使用的导入的选项)。(android.support.v7似乎很好)。

我尝试过的事情:

  • 重建项目
  • 清理项目
  • 与Gradle文件同步
  • 关闭项目,关闭AS并重新启动/重新打开
  • 文件>使缓存无效/重新启动
  • 检查皮棉,没有发现明显的现象
  • 在SDK管理器中仔细检查所有支持库是否为最新
  • 检查我的Build.gradle,尽管没有任何变化,并且与往常一样,但是一直都在工作。

这是有关的情况:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.0.0'
    compile 'com.android.support:gridlayout-v7:19.0.0'
    compile 'com.android.support:appcompat-v7:19.0.0'
    compile 'com.google.android.gms:play-services:4.0.30'
    compile project(':libraries:facebook')
    compile files('libs/core.jar')
}

当我点击“与Gradle同步”并打开“项目设置”时,出现红色错误,告诉我我有重复的库引用并删除未使用的库引用。 在此处输入图片说明

我的项目可以编译并正常运行,但我真的需要自动完成工作!!有没有人有什么建议?

在此处输入图片说明


66
每个Android Studio更新都会中断项目,我已经受够了。他们为什么不能坚持并发布可用的版本。
Konrad Morawski 2014年

3
在清洁或删除任何文件之前,请先阅读此答案。它可以解决您的问题。stackoverflow.com/a/19223269/513413
Hesam,2014年

16
“无效的缓存/重新启动”对我有用。
Eagle_Eye 2015年

1
有同样的问题,并在此SO上的答案上得到了解决stackoverflow.com/a/30828772/1550233
johnw182

接受此答案,以便用户不会手动删除任何内容stackoverflow.com/a/22901534/7767664
user924

Answers:


238

您已经在大多数有用的东西列表中列出了,但是您可以尝试:

  • 退出Android Studio
  • 备份您的项目
  • 删除所有.iml文件和.idea文件夹
  • 重新启动Android Studio并重新导入您的项目

顺便说一句,您在“项目结构”对话框中看到的错误消息大部分都是伪造的。

更新:

金丝雀更新频道提供了Android Studio 0.4.3,希望可以解决其中的大多数问题。可能存在一些挥之不去的问题。如果您在0.4.3中看到它们,请告诉我们,并尝试为我们提供可靠的重现步骤集,以便我们确保已处理所有代码路径。


3
这对我有用。我一整天都在努力解决这个问题!感谢你的回答。
帕特里克·卡夫卡

25
对我来说,删除.idea中的librarys文件夹并使用gradle进行新闻同步项目就足够了。
加布里埃尔·伊特纳2014年

2
我有0.8.9了同样的问题,并试图用没有运气:(此处列出的所有解决方案
雷米DAVID

3
在AndroidStudio 1.2 RC中不适用于我。这是一场噩梦。
RED_

7
这在2018年仍在发生,您的回答很有帮助。我希望此问题已解决...发生在AS 3.1.1中。
Demogorii

302

这里前面提到的所有内容都没有对我真正起作用。但是后来我在文件菜单中找到了这个菜单项Invalidate Caches/Restart,似乎已解决了该问题。

我真的不知道背景发生了什么,但是当Android Studio重新启动时,状态栏显示 Indexing...显示了大约一分钟,这显然是个奇迹。

供参考,我使用的是Android Studio 0.5.4。


2
为我工作0.5.9
父亲栈

19
对我来说,当Android Studios 0.8.2正在加载时发生了电源故障,它无法识别我的任何Java导入,并且一切都只是红色。这对我有用,谢谢!
西蒙

2
我正在使用android studio 1.0.2,当我打开项目时,我到处都是红色错误。我通过android studio-> file-> invalidate chaches / restart解决了它。当我的项目重新启动时,它工作了..没有红色错误
SoftEye 2015年

4
Android Studio 1.1.0。我也遇到了电源故障,这确实解决了问题。
菲多

2
现在,这应该是正确的答案。我确认使用Android Studio 1.4 final。
Davideas,2015年

58

通过链接,它对我有用。

1.)从android studio左上角的菜单中选择File选项。

2.)选择选项:“使缓存无效/重新启动。”它将打开一个对话框。

3.)单击带有选项“无效并重新启动”的第一个按钮

4.)将关闭工作室并重新启动。开始索引项目。

它解决了我的问题:

文件->使高速缓存无效/重新启动->使无效并重新启动

来源:https//www.youtube.com/watch?v = FX_gCTpqhwM


1
适用于Android Studio 3+的版本:stackoverflow.com/questions/50313885/…–
user1506104

在Android Studio 3.5.3上为我工作
漏洞

13

Android Studio 1.3

  1. 打开模块设置
  2. 在“模块”菜单下单击您的模块
  3. 在“ 属性”选项卡中,将“ 源兼容性”和“ 目标兼容性”设置为您的Java版本。

我什么也没做,对我有用。


在哪里可以找到模块设置?
bentaf

3
@bendaf在资源管理器中右键单击您的模块,然后选择“打开模块设置”
Jason Robinson

这些设置也可以在文件 -> 项目结构 -> 属性
ChumiestBucket(

10

对我来说,这是我的build.gradle中的一个“ progaurd”构建条目。我删除了整个构建部分,然后进行了重新同步并解决了问题。


为我工作!谢谢!使用canary build 1.0RC 1.使用minifyEnabled trueminifyEnabled false不定义proguardFiles
Kalem 2014年

另外,不要忘记AndroidLibrary项目不会运行proguard stackoverflow.com/a/10992604/665823
Kalem 2014年

4

我正在使用Android Studio 3.1.4,当我从具有较低api目标的developer分支转移到具有目标api Oreo的另一个分支时遇到了此类问题。我尝试了第一个有效的解决方案,但是它很棘手,而第二个解决方案却不能解决问题。

我的解决方案 当问题再次出现时,我尝试对我的应用程序gradle文件进行少许修改,使其足以让AS要求我同步文件,并且达到了目的。然后我删除了更改。

我想“用Gradle文件同步项目”可能也可以,但是我自己没有尝试过

希望能帮助到你


3

Android Studio中内置了一个简单得多的解决方案,它通常对我有用,不需要其他答案中提到的任何蛮力解决方案-因此,您应该首先尝试以下方法: 在此处输入图片说明

点击Android Studio右侧的“渐变”符号,然后点击“刷新所有Gradle项目”工具。


2

以为我也会把它扔在那里:

对我有用的是将我的build变体改回以前可以使用的变体。由于某种原因,我之前已经更改了此设置(但我忘记了为什么)。

无论哪种方式,最好的办法就是记住您当天更改的内容(可能只是清洁工作,或者回到以前的git commit)。

它还有助于尝试重新同步gradle并强制进行重建。


1

今天早上几个小时都在同一个问题上挣扎。从命令行构建我的项目似乎为我完成了窍门。

确切步骤-

  1. 克隆的新存储库(没有Android Studio文件在回购中)
  2. 从命令行构建调试项目(./gradlew clean assembleDebug)
  3. 打开Android Studio,导入项目

要检查它是否有效,请查看项目的exploded-bundles文件夹,检查一个库并找到classes.jar。如果它是可扩展的,那么一切都会好的。

编辑-在Android Studio中进行清理后,我发现它又坏了。因此,如果必须清洁,则需要再次执行此过程。


我不知道是什么问题,但干净的gradle作品assembleDebug和eveything是好的,现在
杀手

1

这些方法都无法在Android Studio 0.5.8中帮助我。

我的解决方案是删除〜/ .AndroidStudioPreview目录(在Ubuntu中)。抱歉,我不知道在其他操作系统中它在哪里。此目录存储临时文件和Android Studio设置,因此我错过了所有设置。但这有效!


也为我工作。(Android Studio 0.6.0(基本操作系统))
rogeriolino14年

1

另一种方法是下载JDK 1.7并从错误消息中的Android Studio更改路径。然后选择Jdk 1.7文件夹中包含的Home文件夹。


1

今天遇到了同样的问题。通过将项目结构中的jdk位置从\java\jdk1.7.0_05更改为\java\jdk1.7.0_25(我至今不知道存在)来修复该问题。

我正在使用Android Studio 0.8.6。



1

我尝试清理项目,然后使缓存无效,但两者均无效。对我有用的是在build.gradle(app)中注释掉我的所有依赖项,然后进行同步,然后再次取消对依赖项的注释,然后再次进行同步。鲍勃是你的叔叔。


0

我遇到了类似的问题,但是在我的案例中,我按照以下步骤操作:

1).inside项目在.idea文件夹下,打开modules.xml。2)。检查同一iml文件是否有两个条目。3)。删除​​重复项之一,然后关闭android studio或再次构建gradle文件。

就我而言,它奏效了。希望能帮助到你


0

我通过设置JDK解决了。当我将鼠标悬停在错误上方时,出现一个弹出窗口,提示安装JDK。


0

我遇到了同样的问题,此处列出的解决方案均无效。问题是我的源文件不在正确的文件夹中。

目录结构必须为:

[project]\[module]\src\main\java\[yourpackage]\[yourclass.java]


0

我终于弄清楚了导致此问题的原因。

实际上,您应该避免将.idea/libraries文件夹推送到存储库。它会在Android Studio中创建奇怪的内容,从而倾向于删除所有下载的库。

如果您有提交历史记录,只需重新创建所有丢失的库文件,并避免再次提交它们即可。否则,只需删除整个.idea文件夹,然后将其重新导入到AS中即可。


0

尝试使用以下值更改build.gradle:

android {compileSdkVersion 18 buildToolsVersion '21 .0.1'

defaultConfig {
    minSdkVersion 18
    targetSdkVersion 18
}

0

我使用共享首选项,但是Android Studio抱怨“编辑器”符号。然后,我添加了

import android.content.SharedPreferences.Editor;

符号现在很酷。


0

请检查您的项目路径中是否包含特殊字符,如!(感叹号)。

我遇到类似问题中,这是根本原因-因为许多Java应用程序似乎不容许这样的特殊字符(例如,从终端执行“ gradlew clean”会失败并抛出RunTimeException。)。在线发布的其他解决方案都没有帮助我。但是,一旦我删除了!从头开始并进行了干净的构建,Android Studio神奇地工作了。


0

我尝试了这里列出的所有内容。然后我检查了我的androidmanifest.xml,由于文件夹重命名和包重命名,我的stoopid不匹配。


0

在我的多模块项目中,问题在于模块A中“ com.android.support:appcompat-v7”的版本为“ 22.0.0”,而在B中为“ 22.2.0”。

解决方案:确保
1.模块之间的通用库版本相同。
2.每个模块编译时都没有任何错误(尝试从CLI构建每个模块)。


0

请注意,文件名(特别是文件夹名)可能会导致此错误。例如,如果您有一个文件夹“ Helpers”,并且该文件夹中的文件包是“ com.whatever.helpers”,则不会导致任何编译错误,但会导致Android Studio无法在该文件夹中加载符号。一个典型的原因是,当您使用第一个大写字母命名文件夹时,将其提交到Git上,然后将文件夹名称更改为所有小写字母。Git系统将无法识别导致本地存储库和远程存储库之间出现差异的更改,只有新存储库克隆会受到影响。



0

我有一个陌生的解决方案。万一遇到任何人,值得仔细检查您的gradle文件。事实证明,当我克隆此git并且gradle正在运行时,它从build.gradle(应用程序)文件中删除了一行。

dependencies {
     provided files(providedFiles)

显然,这里的问题是将其重新添加并与gradle重新同步。


0

重建aar文件并将项目中的旧文件替换为新文件时,我遇到了类似的问题。我在这里经历了所有解决方案,但没有一个解决了我的问题。后来我意识到,在库项目中将minifyEnabled设置为true,从而有效地删除了许多未在库项目中使用的无效代码。

我的解决方案是在库项目中将minifyEnabled设置为false,组装aar,将其复制到我的项目中,使缓存无效并使等级项目同步,并且一切正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.