ChatGPT解决这个技术问题 Extra ChatGPT

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')
}

https://i.stack.imgur.com/YACON.jpg

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

https://i.stack.imgur.com/ZzJDV.jpg

每一次 Android Studio 更新都会破坏项目,我已经厌倦了。为什么他们不能坚持并发布一个可用的版本。
在清理或删除任何文件之前,请先阅读此答案。它可能会解决您的问题。 stackoverflow.com/a/19223269/513413
“使缓存无效/重新启动”对我有用。
遇到了同样的问题,并修复了这篇 SO 帖子 stackoverflow.com/a/30828772/1550233 上的答案
接受这个答案,这样用户就不会手动删除任何内容stackoverflow.com/a/22901534/7767664

S
Siddharth

这里前面提到的所有事情都没有真正对我有用。但后来我在文件菜单 Invalidate Caches/Restart 中发现了这个菜单项,它似乎已经解决了这个问题。

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

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


在 0.5.9 上为我工作
对我来说,当加载 android studios 0.8.2 时我遇到了电源故障,它无法识别我的任何 java 导入并且一切都是红色的。这对我有用,谢谢!
我正在使用android studio 1.0.2,当我打开我的项目时,我充满了红色错误。我通过 android studio-->file-->invalidate chaches/restart 解决了它。当我的项目重新启动时它起作用了..没有红色错误
安卓工作室 1.1.0。我也遇到了电源故障,这成功了。
这现在应该是正确的答案。我用 Android Studio 1.4 final 确认了。
S
Scott Barta

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

退出 Android Studio

备份您的项目

删除所有 .iml 文件和 .idea 文件夹

重新启动 Android Studio 并重新导入您的项目

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

更新:

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


这对我有用。我要疯了,一整天都想弄清楚!感谢你的回答。
对我来说,删除 .idea 中的库文件夹和使用 gradle 的新闻同步项目就足够了。
我对 0.8.9 有同样的问题,并尝试了这里列出的所有解决方案,但没有运气:(
在 AndroidStudio 1.2 RC 中对我不起作用。这是一场噩梦。
这仍然在 2018 年发生,您的回答很有帮助。我希望这个问题得到解决……发生在 AS 3.1.1 中。
S
Satan Pandeya

通过链接,它对我有用。

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

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

3.)点击第一个按钮选项:“无效并重新启动”

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

它解决了我的问题:

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

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


对于 Android Studio 3+:stackoverflow.com/questions/50313885/…
在 Android Studio 3.5.3 上为我工作
适用于 Android Studio 4.x
2022 年也可以使用 :-) ,就像一个魅力。
M
Mathieu de Brito

安卓工作室 1.3

打开模块设置 单击模块菜单下的模块 在属性选项卡中,将源兼容性和目标兼容性设置为您的 java 版本。

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


在哪里可以找到模块设置?
@bendaf 在资源管理器中右键单击您的模块,然后选择“打开模块设置”
这些设置也可以在文件 --> 项目结构 --> 属性中找到
P
Post Impatica

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


为我工作!谢谢!使用 canary build 1.0RC 1. 使用 minifyEnabled trueminifyEnabled false 而不是定义 proguardFiles
也不要忘记 AndroidLibrary 项目不运行 proguard stackoverflow.com/a/10992604/665823
A
Aenon

我正在使用 Android Studio 3.1.4,当从具有较低 api 目标的开发分支移动到具有目标 api Oreo 的另一个分支时,我遇到了这样的问题。我尝试了第一个解决方案,但它很棘手,而第二个解决方案没有解决问题。

我的解决方案当问题再次出现时,我尝试稍微修改我的应用程序 gradle 文件,使其足以让我同步文件,这样就成功了。然后我删除了更改。

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

希望能帮助到你


A
Amir Uval

https://i.stack.imgur.com/FOWhs.png

点击Android Studio右侧的“gradle”符号,然后点击“Refresh all Gradle projects”工具。


D
David T.

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

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

无论哪种方式,最好的办法是尝试记住你那天所做的更改(它可能像清理一样小,或者回到以前的 git 提交)......等等。

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


K
Kevin Grant

今天早上在同样的问题上挣扎了几个小时。从命令行构建我的项目似乎对我有用。

具体步骤——

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

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

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


我不知道是什么问题,但是 gradle clean assembleDebug 可以工作,现在一切都很好
D
DmitryDzz

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

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


也为我工作。 (基本操作系统上的 Android Studio 0.6.0)
P
Panos

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


M
Manu

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

我正在使用 Android Studio 0.8.6。


C
Community

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

感谢这个人:https://stackoverflow.com/a/33978721/425238


C
CKP78

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


G
Gagandeep Singh

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

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

就我而言,它起作用了。希望能帮助到你


v
varghesekutty

我通过设置JDK解决了它。当我将鼠标放在错误上时,我得到一个弹出窗口说设置 JDK。


R
Rémy DAVID

我有同样的问题,这里列出的解决方案都没有奏效。问题是我的源文件不在正确的文件夹中。

目录结构必须是:

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


A
Adrien Cadet

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

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

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


F
Fakher

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

android { compileSdkVersion 18 buildToolsVersion '21.0.1'

defaultConfig {
    minSdkVersion 18
    targetSdkVersion 18
}

J
JDOaktown

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


s
surlac

在我的多模块项目中,问题是模块 A 中的“com.android.support:appcompat-v7”版本是“22.0.0”,但在 B -“22.2.0”中。解决方法: 1. 模块间公共库的版本是否一致。 2. 每个模块都编译没有任何错误(尝试从 CLI 构建每个模块)。


E
Eduardo Cobuci

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


C
Community

另一个非常微妙的原因:

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

Multi flavor app based on multi flavor library in Android Gradle


B
Blaze Gawlik

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

dependencies {
     provided files(providedFiles)

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


C
Clement Osei Tano

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

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


h
hiddeneyes02

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


f
fullmoon

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

import android.content.SharedPreferences.Editor;

符号现在很酷。


C
Community

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

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