Android Studio突然无法解析符号

时间:2014-01-13 20:24:30

标签: android import gradle android-studio

Android Studio 0.4.2工作正常,今天我打开它,几乎所有内容都是红色,自动完成功能已停止工作。我看看导入和AS似乎告诉我它突然找不到 android.support.v4 (提供我删除未使用的导入的选项)。 ( android.support.v7 似乎没问题。)

我尝试过的事情:

  • 重建项目
  • 清洁项目
  • 与Gradle文件同步
  • 关闭项目,关闭AS并重新启动/重新打开
  • 文件>使缓存无效/重新启动
  • 检查Lint,没有看到任何明显的东西
  • 在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同步”并打开“项目设置”时,我收到一个红色错误,告诉我我有重复的库引用并删除未使用的库引用。 enter image description here

我的项目编译并运行良好,但我真的需要自动完成工作!有没有人有任何建议?

enter image description here

27 个答案:

答案 0 :(得分:289)

这里提到的所有事情都没有真正对我有用。但后来我在文件菜单Invalidate Caches/Restart中找到了这个菜单条目,似乎解决了问题。

我真的不知道后台发生了什么,但是当Android Studio再次启动时,状态栏会显示Indexing...一分钟左右,显然确实存在奇迹。

供参考我使用Android Studio 0.5.4。

答案 1 :(得分:226)

您已经列出了大多数有用的内容,但您可以尝试:

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

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

更新:

Android Studio 0.4.3在canary更新频道中可用,应该有望解决大部分问题。可能会有一些挥之不去的问题;如果您在0.4.3中看到它们,请告诉我们,并尝试为我们提供一系列可靠的重现步骤,以便我们确保我们已经处理好所有代码路径。

答案 2 :(得分:12)

Android Studio 1.3

  1. 打开模块设置
  2. 点击模块菜单
  3. 下的模块
  4. 属性标签中,将源兼容性目标兼容性设置为您的java版本。
  5. 我什么也没做,这对我有用。

答案 3 :(得分:9)

对我而言,这是一个" progaurd"在我的build.gradle中构建条目。我删除了整个构建部分,然后重新同步并解决了问题。

答案 4 :(得分:2)

我以为我也把它扔出去了:

对我有用的事情是将我的构建变体改回到以前工作的变体。出于某种原因,我之前已经改变了这一点(我忘记了原因)。

无论哪种方式,最好的办法是尽量记住你那天改变了什么(它可能是像清洁一样轻微的东西,或者回到之前的git提交)......等等。

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

答案 5 :(得分:1)

今天早上在几个小时内遇到同样的问题。从命令行构建我的项目似乎已经为我做了诀窍。

确切的步骤 -

  1. 克隆的新存储库(没有Android工作室文件处于回购状态)
  2. 从命令行构建调试项目(./gradlew clean assembleDebug)
  3. 打开Android Studio,导入项目
  4. 要检查它是否有效,请查看您的项目explosion-bundles文件夹,检查库并找到classes.jar。如果它是可扩展的,那么一切都会好的。

    编辑 - 我发现在Android工作室中进行了清理之后,它再次崩溃了。因此,如果您需要清理,则需要再次执行此过程。

答案 6 :(得分:1)

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

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

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

希望有帮助

答案 7 :(得分:1)

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

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

答案 8 :(得分:1)

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

我使用的是Android Studio 0.8.6。

答案 9 :(得分:1)

在Android Studio 0.5.8中,这些方法都没有帮助我。

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

答案 10 :(得分:1)

另一种方法是下载JDK 1.7并在错误消息中更改Android Studio的路径..并选择Jdk 1.7文件夹中包含的主文件夹

答案 11 :(得分:0)

在我的多模块项目中,问题是" com.android.support的版本:appcompat-v7"在模块A中是" 22.0.0",但在B - " 22.2.0"。

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

答案 12 :(得分:0)

这些解决方案都不适合我。 我必须一起卸载Android Studio,然后删除所有与Android Studio相关的文件(用户文件),然后再次重新安装。

答案 13 :(得分:0)

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

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

答案 14 :(得分:0)

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

答案 15 :(得分:0)

我通过从我的模块子项目中删除settings.gradle来修复此问题。它是一个Java Gradle项目,它带有它自己的settings.gradle文件,不知何故它搞砸了。

感谢这位家伙:https://stackoverflow.com/a/33978721/425238

答案 16 :(得分:0)

另一个非常微妙的原因:

多味道库应该以特定的方式编译,而不是普通的单味。否则它会静默生成无法解析符号错误。

Multi flavor app based on multi flavor library in Android Gradle

答案 17 :(得分:0)

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

答案 18 :(得分:0)

我通过设置JDK解决了这个问题。当我将鼠标放在错误上时,我弹出一个提示JDK的设置。

答案 19 :(得分:0)

I tried everything listed here. Then I checked my androidmanifest.xml I'd had some stoopid mismatched due to folder renames & package renames.

答案 20 :(得分:0)

请检查您是否有具有特殊字符的项目路径! (感叹号)。

similar problem that I experienced中,这是根本原因 - 因为许多Java应用程序似乎不能容忍这样的特殊字符(例如,从终端执行' gradlew clean'会失败并抛出一个RuntimeException的)。 在线发布的其他解决方案都没有帮助我。但是,一旦我删除了!从路径上做了一个干净的构建,Android Studio神奇地工作。

答案 21 :(得分:0)

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

import android.content.SharedPreferences.Editor;

现在符号很酷。

答案 22 :(得分:0)

我遇到了类似的问题,但我遵循了以下步骤: -

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

就我而言,它有效。 希望它有所帮助

答案 23 :(得分:0)

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

android {     compileSdkVersion 18     buildToolsVersion '21 .0.1'

defaultConfig {
    minSdkVersion 18
    targetSdkVersion 18
}

答案 24 :(得分:0)

我终于找到了导致这个问题的原因。

实际上,您应该避免将.idea/libraries文件夹推送到您的存储库。它会在Android Studio中创建奇怪的东西,这往往会删除所有下载的库。

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

答案 25 :(得分:0)

我遇到了同样的问题,这里列出的解决方案都没有。问题是我的源文件不在右侧文件夹中。

目录结构必须是:

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

答案 26 :(得分:-1)

我有一个更奇怪的解决方案。如果有人碰到这个,那么值得仔细检查你的gradle文件。事实证明,当我克隆这个git并且gradle正在运行时,它从我的build.gradle(app)文件中删除了一行。

dependencies {
     provided files(providedFiles)

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