无法解析符号'AppCompatActivity'

Lin*_*ton 204 android android-appcompat gradle android-support-library android-studio

我刚刚尝试使用Android Studio.我创建了空白项目并试图创建Activity扩展AppCompatActivity.不幸的Android Studio"说"它

无法解析符号'AppCompatActivity'

我有 compile "com.android.support:appcompat-v7:22.0.+"我的"app"模块的依赖列表和重建项目几次.但是我只能使用ActionBarActivity.我究竟做错了什么?

Iva*_*sov 340

对于在使用正确的lib版本和正确的类时具有相同错误的任何人来说,这里有一点补充.

当我升级到ActionBarActivity其中时,由于Android Studio中的一些小故障而AppCompatActivty被弃用并且是空的并且Cannot resolve symbol 'AppCompatActivity'是要走的路,它在版本更改上并没有完全发现.即使Gradle没有错误运行,IDE本身仍然说Ctrl+N(并且它也无法通过.idea/libraries搜索获得)

我查看了该ActionBarActivity文件夹,注意到新版本的lib没有合适的元文件.

因此,使用旧的可靠文件 - >无效缓存/重启就可以了.当您感觉Android Studio出现了神奇错误时,请务必尝试此操作.

  • 这似乎对我没用.:( (16认同)
  • 如果它不起作用,试试这个,为我工作:/sf/answers/2564923581/ (3认同)
  • 对我来说也不起作用,每次升级appcompat时,我都会遇到很多问题. (2认同)

DBX*_*X12 161

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

  1. 退出Android Studio
  2. 在项目中导航到该.idea文件夹
  3. 只需重命名该libraries文件夹即可
  4. 重启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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

moujib证实,它适用于Android Studio 3.2.1


Gab*_*tti 70

今天(4月22日)您可以使用AppCompatActivity支持库v 22.1.0发布的新版本.

只需改变你的依赖:

compile "com.android.support:appcompat-v7:22.1.0"
Run Code Online (Sandbox Code Playgroud)

在这里,您可以找到有关这个新课程的更多信息.

  • 嗯我正在使用更高版本,但仍然遇到问题`compile'c​​om.android.support:appcompat-v7:23.1.1'` (7认同)

Sid*_*lla 28

我通过Going to build.gradlefile和依赖属性来修复它appcompat,就像编译一样'com.android.support:appcompat-v7:XX.X.X'

将其更改为编译 'com.android.support:appcompat-v7:XX.X.+'

然后单击"同步".如果代码中的其他所有内容都正确,那么所有的红色波浪线应该都会出现.

  • +1,OMG这对我有用.:) BTW'+`符号用于_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.+)** (7认同)

Abd*_*een 27

这太简单了.您需要遵循的步骤

1-Exit Android工作室.

2 - 转到项目目录.

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

4)-delete库文件夹存在于.idea文件夹中.

5) - 重启你的android工作室.并且您的问题已得到解决.

  • 如果出现严重错误,我永远不会删除该文件夹。只需重命名它就足够了。在最坏的情况下,库文件夹不会重新生成,您可以返回并恢复“libraries”文件夹的原始名称。一切正常后,您可以返回并删除您重命名的文件夹。如果您的工作室已损坏,它可能不会重新生成文件夹 - 删除文件时请务必小心。 (2认同)

小智 13

检查拼写错误,当我实际输入AppCompactActivity而不是AppCompatActivity时,我整天都在寻找解决方案


jk7*_*jk7 13

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

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

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

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


Sat*_*T.M 11

无法解析符号AppCompatActivity问题.

执行简单步骤来解决问题.

i)退出Android工作室.

ii)转到您的项目目录.

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

iv)删除.idea文件夹.

v)重启你的android工作室.

vi)问题将得到解决.


Muh*_*far 10

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

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

如果您使用的 Gradle 版本大于 3.2,则常规的 Appcompat 依赖项,例如

implementation 'com.android.support:appcompat-v7:27.1.1
Run Code Online (Sandbox Code Playgroud)

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

implementation 'androidx.appcompat:appcompat:1.1.0'
Run Code Online (Sandbox Code Playgroud)

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

import android.support.v7.app.AppCompatActivity;
Run Code Online (Sandbox Code Playgroud)

对此:

import androidx.appcompat.app.AppCompatActivity;
Run Code Online (Sandbox Code Playgroud)

完毕


Mob*_*per 8

试试这个.在Android Studio中,将依赖项放在build.gradle中之后.转到Build - > Clean Project.

它对我有用.


Rag*_*rma 7

多数民众赞成真的疯了,我尝试了一切,与Gradle文件同步,无效并重新启动android studio.问题仍然存在.最后一种方法是删除.idea/libraries文件夹,它就像魅力一样.


Ser*_*kov 6

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

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


Nih*_*zar 6

对我来说,当我将appcompact v7更新为最新版时,问题已得到解决.

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

希望能帮助到你...:)


Sea*_*s77 6

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

File -> Sync Project with Gradle Files
Run Code Online (Sandbox Code Playgroud)


小智 5

在使用Mac OS X Yosemite Machine进行开发时,我遇到了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

希望这有帮助