无法解析符号“AppCompatActivity”

Posted

技术标签:

【中文标题】无法解析符号“AppCompatActivity”【英文标题】:Cannot resolve symbol 'AppCompatActivity' 【发布时间】:2015-05-25 19:57:32 【问题描述】:

我刚刚尝试使用 android Studio。我创建了空白项目并尝试创建扩展AppCompatActivityActivity。不幸的是Android Studio“说”它

我的“app”模块的依赖项列表中有compile "com.android.support:appcompat-v7:22.0.+",并多次重建项目。但是我只能使用ActionBarActivity。我做错了什么?

【问题讨论】:

您使用的是正确的构建版本吗?你的 sdk 是最新的吗? @Lingviston 你没有使用正确的版本。你应该使用com.android.support:appcompat-v7:22.1.0 那个时候还没有这样的版本。 但是现在有了,它解决了问题:) 【参考方案1】:

这里是对其他答案的一点补充,适用于在使用正确的 lib 版本和正确的类时遇到相同错误的任何人。

当我升级到

appcompat-v7:22.1.0

其中ActionBarActivity 已弃用且为空,而AppCompatActivty 是要走的路,由于Android Studio 中的一些故障,它并没有完全适应版本更改。

即即使 Gradle 运行没有错误,IDE 本身也一直在说 Cannot resolve symbol 'AppCompatActivity'(也无法通过 Ctrl+N 搜索获得)

我查看了.idea/libraries 文件夹,发现没有适合新版本库的元文件。

因此,使用旧的可靠 File->Invalidate Caches/Restart 就可以了。当您觉得 Android Studio 出了点问题时,请务必尝试此操作。 然后禁用离线模式并同步。

【讨论】:

对我也不起作用,每次升级 appcompat 时都会遇到很多问题。 对我来说,更新到 Android Studio 2.0 时出现此错误 - 如上所述清除缓存并重新启动效果很好! 我的 compile 'com.android.support:appcompat-v7:23.3.0' 已经在我的 build.gradle 中...但仍然出现错误 如果它不起作用,试试这个,对我有用:***.com/a/36641765/3758439 在 IntelliJ IDE 中相同。【参考方案2】:

如果通过 gradle file / "Invalidate caches" 和其他 IDE 工具的软方法不起作用,请使用硬方法:

    退出 Android Studio 在您的项目中导航到 .idea 文件夹 只需重命名libraries 文件夹 重新启动 Android Studio。它现在应该重新创建 libraries 文件夹并再次工作。

这对我有用

Android Studio 3.1.2
Build #AI-173.4720617, built on April 13, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-38-generic

Shahbaz Ali 确认,它也适用于

Android Studio 3.1.3
Build #AI-173.4819257, built on June 4, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-38-generic

moujib 确认,它适用于 Android Studio 3.2.1

【讨论】:

Ty 进行修复!另外,我想知道这里的每个用户是使用 PC 版还是 ios 版的 Android Studio。我有一些开发者朋友在 iOS 上从来没有遇到过这些问题。我在PC上遇到了很多问题。不知道我尝试了多少次清理/重建/无效缓存... Shahbaz Ali 和我用的是 Linux 版本,moujib 只评论说这个解决方案在 3.2.1 有效【参考方案3】:

今天(4 月 22 日)您可以使用随支持库 v 22.1.0 一起发布的新 AppCompatActivity

只需改变你的依赖:

compile "com.android.support:appcompat-v7:22.1.0"

Here你可以找到更多关于这个新课程的信息。

【讨论】:

hmm 我正在使用更高版本但仍然遇到问题compile 'com.android.support:appcompat-v7:23.1.1'【参考方案4】:

太简单了。这里是你需要遵循的步骤

1-退出 Android 工作室。

2-转到您的项目目录。

3-在我的情况下是这样的(F>Android->YourProjectName->.idea)。

4)-删除 .idea 文件夹中的库文件夹。

5)-重启你的安卓工作室。 你的问题就解决了。

【讨论】:

我永远不会删除该文件夹以防万一出现严重错误。只需重命名它就足够了。在最坏的情况下,没有重新生成库文件夹,您可以返回并恢复“库”文件夹的原始名称。在一切正常后,您可以返回并删除您重命名的文件夹。如果您的工作室已损坏,它可能无法重新生成文件夹 - 删除文件时请务必小心。 这为我修好了。【参考方案5】:

我通过转到build.gradle 文件和依赖项appcompat 来修复它,比如编译'com.android.support:appcompat-v7:XX.X.X'

改成编译'com.android.support:appcompat-v7:XX.X.+'

然后点击同步。如果代码中的其他所有内容都正确,则所有红色波浪线都应该消失。

【讨论】:

+1,天哪,这对我有用。 :) 顺便说一句,+ 标志是 Hey Gradle,如果同一版本的任何新版本可供您自己使用 :)。我正在使用com.android.support:appcompat-v7:25.3.1 现在这起到了作用:com.android.support:appcompat-v7:25.3.+ 虽然 AS 给了我警告:避免在版本号中使用 +;可能导致不可预测和不可重复的构建 (com.android.support:appcompat-v7:25.3.+)【参考方案6】:

还要检查拼写错误,当我实际输入 AppCompactActivity 而不是 AppCompatActivity 时,我浪费了一整天的时间寻找解决方案

【讨论】:

【参考方案7】:

在将 Android Studio 从 2.2.3 更新到 2.3、将 Android Gradle 插件更新到 2.3.0 并将 Gradle 更新到 3.3 之后,我收到了 AppCompatActivity 和许多其他类和方法的 Cannot resolve symbol 错误。

File -> Invalidate Caches / Restart 没有解决问题。

Preferences -> Build, Execution, Deployment -> Gradle 显示 Use local gradle distribution 已选择 Gradle 主页:/Applications/Android Studio.app/Contents/gradle/gradle-2.14.1 并显示警告,说明 gradle 位置不正确

通过选择 Use default gradle wrapper (recommended) 解决了问题。 可能只是指向新的本地分发位置也可以。

【讨论】:

【参考方案8】:

无法解决符号 AppCompatActivity 问题。

执行简单的步骤来解决问题。

i) 退出 Android 工作室。

ii) 转到您的项目目录。

iii) 在您的项目目录中找到 .idea 文件夹。

iv) 删除 .idea 文件夹。

v) 重启你的安卓工作室。

vi) 问题将得到解决。

【讨论】:

如果您进入 .idea 文件夹并将“libraries”文件夹重命名为不同的名称,这个技巧同样有效。如果出现严重错误,您只需返回并将库文件夹重命名为原始名称并尝试其他操作,而不是尝试恢复整个 .idea 文件夹。【参考方案9】:

当您在 Gradle.properties 文件中添加 AndroidX 支持时,例如

android.useAndroidX=true
android.enableJetifier=true

如果您使用的 Gradle 版本高于 3.2,则传统的 Appcompat 依赖例如

implementation 'com.android.support:appcompat-v7:27.1.1

不会工作。 将此依赖项替换为:

implementation 'androidx.appcompat:appcompat:1.1.0'

此外,在您的类文件中更改 AppCompatActivity 导入:

import android.support.v7.app.AppCompatActivity;

到这里:

import androidx.appcompat.app.AppCompatActivity;

完成

【讨论】:

【参考方案10】:

试试这个。在 Android Studio 中,将依赖项放入 build.gradle 后。 转到构建 --> 清理项目。

它对我有用。

【讨论】:

【参考方案11】:

这真是太疯狂了,我尝试了一切,与 Gradle 文件同步,无效并重新启动了 android studio。问题仍然存在。最后的手段是删除 .idea/libraries 文件夹,它起到了魅力。

【讨论】:

【参考方案12】:

您可以使用新的 AppCompatActivity appcompat-v7:22.1.+ 只需将其添加到您的 gradle 中:

编译'com.android.support:appcompat-v7:22.1.1'

【讨论】:

【参考方案13】:

对我来说,当我将 appcompact v7 更新到最新版本时,问题就解决了。

编译'com.android.support:appcompat-v7:25.3.0'

希望对你有帮助...:)

【讨论】:

【参考方案14】:

所以我的同事推了他们的local.properties,这破坏了一切。我从另一个应用程序复制了我的 sdk 路径并做了:

File -> Sync Project with Gradle Files

【讨论】:

【参考方案15】:

在 Mac OS X Yosemite 机器上开发时,我在使用 Android SDK 23 时遇到了同样的问题。原来我没有Java SDK 7。

一旦我安装了 Java SDK 7 并将 SDK 从 Android Studio 指向新的 SDK,一切都对我有用。

以下是我遵循的步骤:

1) 关闭 Android SDK

2) 从http://www.oracle.com/technetwork/java/javase/downloads/index.html 安装适用于 Mac OS X 的 Java SDK

3) 启动 Android SDK 并将此项目的 SDK 指向新的 1.7 Java SDK,方法是转到文件 -> 项目结构 -> JDK 位置

4) 重启 Android Studio

希望对你有所帮助

【讨论】:

【参考方案16】:

记得按 Alt+Enter 或添加导入。

import android.support.v7.app.AppCompatActivity; 

【讨论】:

【参考方案17】:

以下都没有解决我的问题

重启安卓 文件 >> 使用 Gradle 文件同步项目 构建 >> 清理项目 构建 >> 重建项目 文件 >> 使缓存无效/重新启动

相反,我通过将 appcompat 和设计依赖项的版本更新到最新版本来解决它 为此:转到 build.grade (Module:app) >> 依赖项部分,然后在 appcompat 和设计依赖项上点击 ALT + ENTER 然后选择显示的版本我的情况是 24.2.1 如图所示

【讨论】:

【参考方案18】:

我将 Gradle 2.3.3 更新到 4.4,但在 AppCompatActivity 和 Cardview 上出现错误。我尝试使用干净的项目和重建项目。它不起作用,然后我转到 Project Folder -> .idea -> 创建 libraries 文件夹的备份并将其删除 -> 然后重建项目解决了我的问题。

【讨论】:

【参考方案19】:

让我们一步一步来:首先使用清理项目

构建->清理

如果这没有帮助,请使用您的第二步

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

但是当上述所有选项都不起作用时,真正的问题就开始了,所以使用你的最终解决方案是关闭项目并转到项目位置目录并删除

.idea

您现在可以再次打开您的项目。

【讨论】:

【参考方案20】:

升级到最新的支持库后,我必须升级到最新的Android studio(beta)版本和gradle版本,然后IDE才能再次识别AppCompatActivity(无效缓存和重启没有成功)

【讨论】:

【参考方案21】:

在项目 build .gradle 中添加此依赖项。

按照下面的示例进行操作。

dependencies 

    compile 'com.android.support:appcompat-v7:22.1.0'

【讨论】:

我使用 :22.0.0 并找不到 AppCompatActivity 类。我必须至少将其设置为22.1.0。谢谢。【参考方案22】:

简单的方式

打开应用级别 build.gradle 并移除 appcompact-v7 依赖和同步。 再次添加依赖并同步。

错误消失了!

之前

之后

【讨论】:

【参考方案23】:

我解决了它添加:

import androidx.appcompat.app.AppCompatActivity;

在主 .java 文件的“导入”区域中。它对我有用。

希望对你有帮助!

【讨论】:

【参考方案24】:

您只需通过添加一些依赖项来对 Gradle 应用程序文件进行一些更改

编译“com.android.support:appcompat-v7:XX:YY:ZZ”

虽然 XX:YY:ZZ 是您在 gradle 文件中使用的版本代码,否则如果您将此版本设置为低于或高于您正在使用的版本,那么您的应用将面临一些问题,例如有时会崩溃

【讨论】:

【参考方案25】:

我刚刚将我的 android studio 从 2.3.2 更新到 3.1.2 版本。并发生此错误。

我清理项目,重建项目,使缓存/重新启动无效,但没有任何效果。

我通过更新 appcompat 库来解决此错误

编译'com.android.support:appcompat-v7:23.4.0'

编译'com.android.support:appcompat-v7:25.1.1'

在应用程序 build.gradle 文件中。

【讨论】:

【参考方案26】:

如果无效缓存没有帮助,只需关闭项目然后重新打开它。步骤:

文件 > 关闭项目 将项目从起始项目列表中删除 关闭 Android Studio 打开 Android Studio 使用此项目打开现有项目

【讨论】:

【参考方案27】:

发生这种情况是由于以下原因之一:

    您没有安装 SDK API(这是我的问题) 您的项目/Android Studio 不知道所需文件在哪里 您的项目引用了不支持 AppCompatActivity 的过时编译版本 有错别字

可能的解决方案:

    检查您的 .gradle 文件以确保您没有引用过时的版本。 AppCompatActivity 是在 25.1.0 版本中添加的,属于 Maven 神器 com.android.support:appcompat-v7:28.0.0-alpha1,所以不要使用比这更早的任何版本。在您的 build.gradle (Module: app) 文件中,您应该列出依赖项:

    依赖 编译'com.android.support:appcompat-v7:25.1.0'

    您可能使用的是不同的版本,但请确保您已列出 依赖。

    打开 SDK 管理器并下载每个 API 7 或更高版本。如果您缺少所需的 API,它将解决该问题,并且下载所有较新的 API 也可以在以后为您省去一些麻烦。

    检查导入语句中的拼写错误。确保它没有显示“AppCompactActivity”而不是“AppCompatActivity”。 重新同步您的项目(文件>将项目与 Gradle 文件同步) 重建您的项目(构建>重建) 清理您的项目(构建>清理项目) 关闭并重启 Android Studio 更新 Android Studio 重新生成您的库文件夹 - 在 Android Studio 中,在项目视图中查看您的文件。找到文件夹 YourProjectName >.idea >libraries。将文件夹重命名为“libraries_delete_me”。关闭并重新打开 Android Studio。再次打开您的项目,应使用所有文件重新生成库文件夹;您现在可以删除“libraries_delete_me”文件夹。

【讨论】:

【参考方案28】:

对我来说,当我更新 Gradle 构建版本时,问题就解决了。不知道为什么?

【讨论】:

【参考方案29】:

我会告诉你我是如何在 Eclipse 中解决这个问题的。 从此链接下载 zip 文件。https://github.com/dandar3/android-support-v7-appcompat 然后解压该文件,打开项目,在 lib 文件夹中您将看到一个名为“android-support-v7-appcompat”的 jar 文件,将此 jar 文件添加到您的项目中。而已。

【讨论】:

【参考方案30】:

这可能是在应用级别gradle中的版本差异检查一次然后重新构建

【讨论】:

以上是关于无法解析符号“AppCompatActivity”的主要内容,如果未能解决你的问题,请参考以下文章

无法解析符号 AppCompatActivity - 无法识别支持 ​​v7 库?

无法解析符号“连接”

无法解析 style.xml 中的符号“主题”(Android Studio)

无法从com.android.support库导入。 +不同的版本?

无法解析的外部符号 C++

无法解析的外部符号