无法解析符号 AppCompatActivity - 无法识别支持 v7 库?
Cannot resolve symbol AppCompatActivity - Support v7 libraries aren't recognized?
我想弄明白为什么我的 Android 工作室不能正确识别 AppCompat v7 库。下面的导入语句显示为灰色,表示没有支持包。v7.app。下面是我的 activity 文件:
import android.support.v7.app.AppCompatActivity;
public class XApplicationActivity extends AppCompatActivity
我的build.grade:
compile "com.android.support:appcompat-v7:22.0.0"
compile "com.android.support:support-annotations:$ANDROID_SUPPORT_VERSION"
compile "com.android.support:support-v4:$ANDROID_SUPPORT_VERSION"
我的项目设置:
minSdkVersion = 14
targetSdkVersion = 21
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
所以我真的很困惑为什么这仍然给我带来问题。我已经尝试过的事情:
- Cleaning/rebuilding 项目
- 正在使缓存失效并重新启动
- 检查十亿次以确保我安装了支持库(我绝对安装了最新的支持存储库和库)
有人知道任何修复吗?这花了我很多时间,真的很令人沮丧。
AppCompatActivity 仅在支持库的 22.1.0 版本中添加。在此之前它被称为 ActionBarActivity。
您应该为所有支持库使用相同的版本。在撰写本文时,最新版本是 23.1.1(您可以在此处找到最新版本 https://developer.android.com/tools/support-library/index.html#revisions),因此 gradle 文件的依赖项部分应如下所示。
implementation "com.android.support:support-v4:23.1.1"
implementation "com.android.support:appcompat-v7:23.1.1"
implementation "com.android.support:support-annotations:23.1.1"
好的,我通过重建它来修复它以进行第四次 ./gradlew clean assemble...Android Studio 是个奇怪的东西
对我来说,
即使升级到 appcompat-v7:22.1.0
,其中添加了 AppCompatActivty
,
我的问题没有解决,Android Studio 出现了同样的问题
Cannot resolve symbol 'AppCompatActivity'
有时清除 android 工作室缓存有帮助。
在 android studio 中,我刚刚清除缓存并使用以下选项重新启动 --
File->Invalidate Caches/Restart
我得到了与 In case it helps others .. 的完全相同的错误。记录对我有用的最新(2017 年 1 月 14 日)最新的一切。在多个堆栈溢出答案上尝试了所有无效、构建干净、甚至删除 .gradle/、调整支持库等。
我发现升级 settings.gradle gradle 版本修复了它(它是 2.1.3)gradle 工具链中的某些东西似乎
类路径 'com.android.tools.build:gradle:2.2.3'
我们不需要删除文件,只需使缓存失效即可重新启动配置:
我从“...扩展 ActionBarActivity”更改为“...扩展 AppCompatActivity”并尝试清理、重新启动、使缓存无效/重新启动,但没有任何进展。我所有的版本都是最新的。
最终解决的问题是确保我的导入是正确的:
import android.support.v7.app.AppCompatActivity;
出于某种原因,它没有像我习惯的那样自动设置,我不得不手动添加它。
希望对某人有所帮助!
我遵循的解决方案总结为以下步骤:
- 从 构建 菜单,select 编辑库和依赖项
- 确保添加最新的 AppCompat 包(如果未添加)
- 添加后,清理您的项目并重建它。
1.Delete .idea 文件夹
2.Close 并重新打开项目
3.File -> 将项目与 Gradle 个文件同步
这对我有用
删除项目中的隐藏文件夹 .idea 文件夹。转到系统中的项目并单击 ctrl+H 它将可见,然后将其删除。现在重启你的 android studio.I 就会解决。它为我工作。
背景资料:
我的IDE
Android Studio 3.1.3
Build #AI-173.4819257, built on June 4, 2018
JRE: 1.8.0_152-release-1024-b02 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1
第一个解决方案:
再次导入工程,不同意升级androidgradle插件
第二种解决方案:
您的文件应包含这些 片段.
build.gradle:
buildscript {
repositories {
jcenter()
google()//this is important for gradle 4.1 and above
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3' //this android plugin for gradle requires gradle version 4.4 and above
}
}
allprojects {
//...
repositories {
jcenter()
google()//This was not added by update IDE-wizard-button.
//I need this when using the latest com.android.support:appcompat-v7:25.4.0 in app/build.gradle
}
}
要么按照您的 IDE 的建议将您的 gradle 版本升级到 4.4,要么考虑在
gradle/wrapper/gradle-wrapper.属性
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
Optional 更改 app/build 中的 buildToolsVersion。gradle:
android {
compileSdkVersion 25
buildToolsVersion '27.0.3'
app/build.gradle: 注释掉依赖,让构建失败(自动或触发)
dependencies {
//compile fileTree(dir: 'libs', include: ['*.jar'])
//compile 'com.android.support:appcompat-v7:25.1.0'
}
app/build.gradle: 再次在依赖中注释。建议将它们从编译更改为实现,但目前它只是一个警告问题。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.1.0'
}
项目重建后,导入语句应该不会再变灰了;尝试在 class 上调用 Ctrl+h。
但出于某种原因,那些 class-referencing-statements 上的错误标记仍然存在。
要摆脱它们,我们需要隐藏和恢复项目树视图或
或者关闭并重新打开项目。
终于到此为止了。
进一步阅读:
Use the new dependency configurations
如果你更喜欢我的解决方案的图片线索,你可以访问我的blog
最好的解决方案肯定是转到“文件”>“使缓存无效并重新启动”
然后在对话框菜单中...单击“使缓存无效并重新启动”。等待一分钟或重新设置您的项目需要多长时间,然后您应该就可以了。
--
我应该注意,我也 运行 涉及引用资源文件或 "R" 文件的问题,这些文件位于我的 gradle 中的 compileOnly 库中。 (即 compileOnly library > res > referenced xml file)我停止在我的 Java 代码中引用这个文件,它帮助了我。因此,请厌倦引用文件的位置。
我在新开始的项目中遇到了同样的问题,最小 api 23,最后我在我的 gradle 依赖文件中添加了这些代码行,它解决了错误:)
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:customtabs:28.0.0'
implementation 'com.android.support:support-vector-drawable:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
如果您已经尝试过
- 正在使缓存失效并重新启动
- Cleaning/rebuilding 项目
- ./gradlew clean assemble
- 添加了实现
"com.android.support:support-v4:23.1.1"
"com.android.support:appcompat-v7:23.1.1"
“com.android.support:支持注释:23.1.1”
- 已将导入更正为 android.support。v7.app.AppCompatActivity;
- 更正了任何现有的 androidx 导入
仍然面临问题,请阅读下文
终于找到解决办法
我尝试了所有答案中提到的所有内容,但都失败了。
转到 gradle.properties 使这些标记为 false
android.useAndroidX=false
//自动转换第三方库使用AndroidX
android.enableJetifier=false
以上标志是
"true ,for me and hence gradle won't download v7 components"
如果您使用 androidX 而不是 android,您需要
改变
import android.support.v7.app.AppCompatActivity;
到
import androidx.appcompat.app.AppCompatActivity;
并改变
<android.support.constraint.ConstraintLayout>
到
<androidx.constraintlayout.widget.ConstraintLayout>
文件->无效Caches/Restart对我有用。
如果给定的解决方案不起作用,请使用 'KOTLIN' 作为语言创建一个新项目,即使您的工作是在 java 上进行的。
然后将新项目的'main'文件夹替换为旧项目的'main'文件夹。
androidX 用户
将您的 minSdkVersion 更改为 api 级别 21。
像这样minSdkVersion 21
或使用 compileSdkVersion 28
构建您的应用,并将 targetSdkVersion
更改为 targetSdkVersion 28
你会看到 v7 错误消失了。之后,如果您在创建工具栏或其他小部件时遇到问题。按 Alt+Enter 并为其创建一个方法。
替换
import android.support.v7.app.AppCompatActivity;
与
导入 androidx.appcompat.app.AppCompatActivity
我在 'gradle.properties'
中有这些设置
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
最好使用androidx库。所以我将所有导入更改为 androidx 库和编译的项目。访问 http://developer.android.com/jetpack/androidx
获取信息。
问题可能是导入引用,
尝试更改它。
来自:
import android.support.v7.app.AppCompatActivity;
收件人:
import androidx.appcompat.app.AppCompatActivity;
我遇到了同样的情况,修复起来非常简单。只需尝试删除以下导入语句。
import android.support.v7.app.AppCompatActivity;
系统将提示一条消息,其中包含以下代码,同时要求您按 alt+enter。
import androidx.appcompat.app.AppCompatActivity;
只需按 alt+enter 并完全删除之前的导入语句。
基本上这个问题出现在Android Studio 的新版本中。
对我来说,下面的代码运行良好:
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
与(xml 文件):
androidx.constraintlayout.widget.ConstraintLayout xmlns:android="...."
我刚刚对其进行了评论并使用了 androidx,现在一切正常!
import androidx.appcompat.app.AppCompatActivity;
// import android.support.v7.app.AppCompatActivity;
使缓存失效后,
变化自
import android.support.v7.app.AppCompatActivity;
至
import androidx.appcompat.app.AppCompatActivity;
对我有用。
包括导入androidx.appcompat.app.AppCompatActivity;在您的 MainActivity.java 和其他导入语句中。这看起来像:
这解决了我的问题
Follow these steps:
File >> Invalidate Caches / Restart
Clean project
Finally go to build.gradle
And compileSdkVersion and targetSdkVersion lower version
If
implementation 'com.android.support:appcompat-v7:29.0.0'
Convert this to
implementation 'com.android.support:appcompat-v7:28.0.0'
支持 V7 AppCompat 需要兼容 Gradle 版本如下,
对我有用
我想弄明白为什么我的 Android 工作室不能正确识别 AppCompat v7 库。下面的导入语句显示为灰色,表示没有支持包。v7.app。下面是我的 activity 文件:
import android.support.v7.app.AppCompatActivity;
public class XApplicationActivity extends AppCompatActivity
我的build.grade:
compile "com.android.support:appcompat-v7:22.0.0"
compile "com.android.support:support-annotations:$ANDROID_SUPPORT_VERSION"
compile "com.android.support:support-v4:$ANDROID_SUPPORT_VERSION"
我的项目设置:
minSdkVersion = 14
targetSdkVersion = 21
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
所以我真的很困惑为什么这仍然给我带来问题。我已经尝试过的事情:
- Cleaning/rebuilding 项目
- 正在使缓存失效并重新启动
- 检查十亿次以确保我安装了支持库(我绝对安装了最新的支持存储库和库)
有人知道任何修复吗?这花了我很多时间,真的很令人沮丧。
AppCompatActivity 仅在支持库的 22.1.0 版本中添加。在此之前它被称为 ActionBarActivity。
您应该为所有支持库使用相同的版本。在撰写本文时,最新版本是 23.1.1(您可以在此处找到最新版本 https://developer.android.com/tools/support-library/index.html#revisions),因此 gradle 文件的依赖项部分应如下所示。
implementation "com.android.support:support-v4:23.1.1"
implementation "com.android.support:appcompat-v7:23.1.1"
implementation "com.android.support:support-annotations:23.1.1"
好的,我通过重建它来修复它以进行第四次 ./gradlew clean assemble...Android Studio 是个奇怪的东西
对我来说,
即使升级到 appcompat-v7:22.1.0
,其中添加了 AppCompatActivty
,
我的问题没有解决,Android Studio 出现了同样的问题
Cannot resolve symbol 'AppCompatActivity'
有时清除 android 工作室缓存有帮助。
在 android studio 中,我刚刚清除缓存并使用以下选项重新启动 --
File->Invalidate Caches/Restart
我得到了与 In case it helps others .. 的完全相同的错误。记录对我有用的最新(2017 年 1 月 14 日)最新的一切。在多个堆栈溢出答案上尝试了所有无效、构建干净、甚至删除 .gradle/、调整支持库等。
我发现升级 settings.gradle gradle 版本修复了它(它是 2.1.3)gradle 工具链中的某些东西似乎 类路径 'com.android.tools.build:gradle:2.2.3'
我们不需要删除文件,只需使缓存失效即可重新启动配置:
我从“...扩展 ActionBarActivity”更改为“...扩展 AppCompatActivity”并尝试清理、重新启动、使缓存无效/重新启动,但没有任何进展。我所有的版本都是最新的。
最终解决的问题是确保我的导入是正确的:
import android.support.v7.app.AppCompatActivity;
出于某种原因,它没有像我习惯的那样自动设置,我不得不手动添加它。
希望对某人有所帮助!
我遵循的解决方案总结为以下步骤:
- 从 构建 菜单,select 编辑库和依赖项
- 确保添加最新的 AppCompat 包(如果未添加)
- 添加后,清理您的项目并重建它。
1.Delete .idea 文件夹
2.Close 并重新打开项目
3.File -> 将项目与 Gradle 个文件同步
这对我有用
删除项目中的隐藏文件夹 .idea 文件夹。转到系统中的项目并单击 ctrl+H 它将可见,然后将其删除。现在重启你的 android studio.I 就会解决。它为我工作。
背景资料:
我的IDE
Android Studio 3.1.3
Build #AI-173.4819257, built on June 4, 2018
JRE: 1.8.0_152-release-1024-b02 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1
第一个解决方案: 再次导入工程,不同意升级androidgradle插件
第二种解决方案: 您的文件应包含这些 片段.
build.gradle:
buildscript {
repositories {
jcenter()
google()//this is important for gradle 4.1 and above
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3' //this android plugin for gradle requires gradle version 4.4 and above
}
}
allprojects {
//...
repositories {
jcenter()
google()//This was not added by update IDE-wizard-button.
//I need this when using the latest com.android.support:appcompat-v7:25.4.0 in app/build.gradle
}
}
要么按照您的 IDE 的建议将您的 gradle 版本升级到 4.4,要么考虑在 gradle/wrapper/gradle-wrapper.属性
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
Optional 更改 app/build 中的 buildToolsVersion。gradle:
android {
compileSdkVersion 25
buildToolsVersion '27.0.3'
app/build.gradle: 注释掉依赖,让构建失败(自动或触发)
dependencies {
//compile fileTree(dir: 'libs', include: ['*.jar'])
//compile 'com.android.support:appcompat-v7:25.1.0'
}
app/build.gradle: 再次在依赖中注释。建议将它们从编译更改为实现,但目前它只是一个警告问题。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.1.0'
}
项目重建后,导入语句应该不会再变灰了;尝试在 class 上调用 Ctrl+h。 但出于某种原因,那些 class-referencing-statements 上的错误标记仍然存在。 要摆脱它们,我们需要隐藏和恢复项目树视图或 或者关闭并重新打开项目。
终于到此为止了。
进一步阅读:
Use the new dependency configurations
如果你更喜欢我的解决方案的图片线索,你可以访问我的blog
最好的解决方案肯定是转到“文件”>“使缓存无效并重新启动”
然后在对话框菜单中...单击“使缓存无效并重新启动”。等待一分钟或重新设置您的项目需要多长时间,然后您应该就可以了。
--
我应该注意,我也 运行 涉及引用资源文件或 "R" 文件的问题,这些文件位于我的 gradle 中的 compileOnly 库中。 (即 compileOnly library > res > referenced xml file)我停止在我的 Java 代码中引用这个文件,它帮助了我。因此,请厌倦引用文件的位置。
我在新开始的项目中遇到了同样的问题,最小 api 23,最后我在我的 gradle 依赖文件中添加了这些代码行,它解决了错误:)
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:customtabs:28.0.0'
implementation 'com.android.support:support-vector-drawable:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
如果您已经尝试过
- 正在使缓存失效并重新启动
- Cleaning/rebuilding 项目
- ./gradlew clean assemble
- 添加了实现
"com.android.support:support-v4:23.1.1"
"com.android.support:appcompat-v7:23.1.1"
“com.android.support:支持注释:23.1.1” - 已将导入更正为 android.support。v7.app.AppCompatActivity;
- 更正了任何现有的 androidx 导入
仍然面临问题,请阅读下文
终于找到解决办法
我尝试了所有答案中提到的所有内容,但都失败了。
转到 gradle.properties 使这些标记为 false
android.useAndroidX=false
//自动转换第三方库使用AndroidX
android.enableJetifier=false
以上标志是
"true ,for me and hence gradle won't download v7 components"
如果您使用 androidX 而不是 android,您需要 改变
import android.support.v7.app.AppCompatActivity;
到
import androidx.appcompat.app.AppCompatActivity;
并改变
<android.support.constraint.ConstraintLayout>
到
<androidx.constraintlayout.widget.ConstraintLayout>
文件->无效Caches/Restart对我有用。
如果给定的解决方案不起作用,请使用 'KOTLIN' 作为语言创建一个新项目,即使您的工作是在 java 上进行的。 然后将新项目的'main'文件夹替换为旧项目的'main'文件夹。
androidX 用户
将您的 minSdkVersion 更改为 api 级别 21。
像这样minSdkVersion 21
或使用 compileSdkVersion 28
构建您的应用,并将 targetSdkVersion
更改为 targetSdkVersion 28
你会看到 v7 错误消失了。之后,如果您在创建工具栏或其他小部件时遇到问题。按 Alt+Enter 并为其创建一个方法。
替换
import android.support.v7.app.AppCompatActivity;
与 导入 androidx.appcompat.app.AppCompatActivity
我在 'gradle.properties'
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
最好使用androidx库。所以我将所有导入更改为 androidx 库和编译的项目。访问 http://developer.android.com/jetpack/androidx
获取信息。
问题可能是导入引用,
尝试更改它。
来自:
import android.support.v7.app.AppCompatActivity;
收件人:
import androidx.appcompat.app.AppCompatActivity;
我遇到了同样的情况,修复起来非常简单。只需尝试删除以下导入语句。
import android.support.v7.app.AppCompatActivity;
系统将提示一条消息,其中包含以下代码,同时要求您按 alt+enter。
import androidx.appcompat.app.AppCompatActivity;
只需按 alt+enter 并完全删除之前的导入语句。
基本上这个问题出现在Android Studio 的新版本中。
对我来说,下面的代码运行良好:
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
与(xml 文件):
androidx.constraintlayout.widget.ConstraintLayout xmlns:android="...."
我刚刚对其进行了评论并使用了 androidx,现在一切正常!
import androidx.appcompat.app.AppCompatActivity;
// import android.support.v7.app.AppCompatActivity;
使缓存失效后, 变化自
import android.support.v7.app.AppCompatActivity;
至
import androidx.appcompat.app.AppCompatActivity;
对我有用。
包括导入androidx.appcompat.app.AppCompatActivity;在您的 MainActivity.java 和其他导入语句中。这看起来像:
这解决了我的问题
Follow these steps:
File >> Invalidate Caches / Restart
Clean project
Finally go to build.gradle
And compileSdkVersion and targetSdkVersion lower version
If
implementation 'com.android.support:appcompat-v7:29.0.0'
Convert this to
implementation 'com.android.support:appcompat-v7:28.0.0'
支持 V7 AppCompat 需要兼容 Gradle 版本如下,
对我有用