Android Studio 3.1 无法解析符号(主题、小部件、属性等)
Android Studio 3.1 Cannot Resolve Symbol (Themes, Widget, attr, etc.)
我今天将 Android Studio 升级到 3.1,现在 Android Studio 说它无法解析大多数资源的符号(例如 ThemeOverlay
in styles.xml
或?attr/actionBarSize
)。到目前为止,这似乎并没有阻止我在模拟器中构建或 运行,但是这些错误让我很紧张。
还有其他人遇到过这个问题吗?我该如何解决它?我已尝试同步 gradle 并清理我的项目,但它似乎根本没有帮助。
有什么想法吗?
我正在使用 Android Studio 3.1,Gradle 版本 4.4 和 Gradle 插件 3.1.0
编辑:
此问题影响更新到 Android Studio 3.1.1、3.1.2、3.1.3、3.1.4 以及 Gradle 插件到 3.1.1、3.1.2、3.1.3 和 3.1 .4.但是,下面的答案仍然有效。
出于某种原因,在 26 个库中找不到这些属性。要增加这些库,您还必须将 compileSdk
增加到 27。
您可能还必须下载 sdk 27
简短版本,以下是应用程序`graddle``
android {
compileSdkVersion 27
//...
}
dependencies {
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:design:27.1.0'
//...
}
长版本,检查以下所有文件:
gradle-wrapper.属性
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
build.gradle(项目)
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
最后 build.gradle(应用程序)
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "cl.cutiko.testingupdate"
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:27.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
升级AndroidStudio后,可以使缓存失效重启
File
> Invalidate Caches / Restart…
关闭项目并重新导入。今天为我工作。
作为现有 Android Studio 项目关闭并重新打开项目
关闭一个项目,然后以现有项目的形式打开,真是太棒了!
您可以尝试关闭项目并退出 Android Studio(仅关闭并重新导入它对我没有帮助)。启动 Android Studio 并再次打开项目。这对我有用!
我关闭并重新打开项目作为现有 Android Studio 项目(没有导入它),它成功了!感谢 Andrew Glukhoff 的评论。
支持库不同步。
发生此错误是因为支持库与您的项目不同步。要恢复同步,您可以执行以下步骤:
- 打开您的应用模块的 build.gradle 文件
注释掉支持库的 implementation
行。对我来说,它看起来像这样:
//implementation 'com.android.support:appcompat-v7:27.1.1'
//implementation 'com.android.support:recyclerview-v7:27.1.1'
//implementation 'com.android.support.constraint:constraint-la
将您的项目与 gradle 同步。你现在会有一些错误。别担心。
取消注释您之前注释掉的 implementation
行。
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-la
再次将您的项目与 gradle 同步。
"Cannot Resolve Symbol" 错误现在应该消失了。这在不同的项目中对我有用过几次。
备注
- 如果您的项目有多个模块,那么您需要一次对所有模块执行上述说明。
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:design:26.1.0'
在 build.gradle(project)
中使用以上内容更新您的依赖项
并将以下代码放入 build.gradle(Module:app)
classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'io.realm:realm-gradle-plugin:3.7.1'
classpath 'com.google.gms:google-services:3.1.0'
再次导入项目对我不起作用。
我的解决方案是
- 删除项目中的
.idea
文件夹。
- 然后按
File> Close Project
关闭项目
- 然后从欢迎屏幕
File> New > Import Project
或导入项目Import Project (Gradle, Eclipse ADT, etc.)
.
查看屏幕截图了解更多信息
或
对我来说,同样的 symptom/error 是由于将新图像拖放到 'drawable-xxhdpi' 文件夹中导致的,该文件夹的名称 Android Studio 不喜欢 - 例如数字或大写在名字里。
仅 'cannot resolve symbol R' 消息没有给出有用的错误消息。
即使在同步应用程序并清理和重建项目后,问题仍然存在,即 'R' 未被识别且未指示其他错误。
按照其他答案中的建议关闭并导入项目无效,考虑到根本问题,这是有道理的。
然而,尽管这在过去似乎对其他人不起作用,但从 SO 上的其他问题和答案来看,从可绘制文件夹中删除新图像确实有效。
同样,一个更好的解决方案,显然,重命名图像以删除资源名称中 Android 不喜欢的任何字符,然后进行干净的 and/or 重建项目也有效。
示例
setContentView(R.layout.activity_login_ativity);
- 将光标放在R中
- 单击 Alt+Enter
- 选择导入class R
为我工作:)
我是怎么解决的。:
我更新了Android studio 到3.2版本,两步解决了这个问题。
已从 Android 工作室欢迎页面中删除。
再次打开项目。
对我有用。
问题#1
我的问题与我如何使用 Android 插件的 alpha/beta 版本有关
File > Project Structure > Project
检查你的Android Plugin Version
我正在使用一个叫做 3.3.0-beta
的东西,但在另一个项目中 3.1.0-alpha
将其更改为 3.2.0
似乎解决了我的问题,别忘了也更改 build.gradle(Project) 中的
问题#2
我的一个 .xml 文件中有一个错误。我错过了 @string
资源。请检查所有 xml 文件,并确保它们都是正确的(打开 xml 文件应该激活 Android Studio linting,滚动文件,如果有问题,它应该以红色抱怨错误)
问题#3
在 build.gradle
中,我导入了不同版本的 android 支持库。例如
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:27.1.0'
请确保它们是同一版本。并确保 Android Studio 不会在您的 gradle
依赖项中抱怨任何内容。可能是您的某些依赖项还导入了不同的 android 支持库版本。
#1、#2 和#3 之后要采取的步骤
清理你的项目Build > Clean Project
使缓存无效并重新启动File > Invalidate Caches / Restart
重启后,等待gradle构建完成,然后瞧!
我将我的 gradle 版本更新到 4.10.1 并做了 "fix and reimport"。之前.idea下没有libraries文件夹。然后成功了
当我更新到 com.android.tools.build:gradle 3.3.1
和 gradle-4.10.1
时出现类似的错误
我尝试了以下方法但没有用:
Clean Project
- Rebuild Project
Invalidate Caches / Restart
- 检查
.xml
错误(我没有发现任何关于xml的错误)
- 修改
.iml
文件
我通过修改 com.android.tools.build:gradle 3.2.1
和 Restart my mac
来修复这个错误,我不知道是哪个可以修复它,但它确实对我有用。
我今天将 Android Studio 升级到 3.1,现在 Android Studio 说它无法解析大多数资源的符号(例如 ThemeOverlay
in styles.xml
或?attr/actionBarSize
)。到目前为止,这似乎并没有阻止我在模拟器中构建或 运行,但是这些错误让我很紧张。
还有其他人遇到过这个问题吗?我该如何解决它?我已尝试同步 gradle 并清理我的项目,但它似乎根本没有帮助。
有什么想法吗?
我正在使用 Android Studio 3.1,Gradle 版本 4.4 和 Gradle 插件 3.1.0
编辑: 此问题影响更新到 Android Studio 3.1.1、3.1.2、3.1.3、3.1.4 以及 Gradle 插件到 3.1.1、3.1.2、3.1.3 和 3.1 .4.但是,下面的答案仍然有效。
出于某种原因,在 26 个库中找不到这些属性。要增加这些库,您还必须将 compileSdk
增加到 27。
您可能还必须下载 sdk 27
简短版本,以下是应用程序`graddle``
android {
compileSdkVersion 27
//...
}
dependencies {
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:design:27.1.0'
//...
}
长版本,检查以下所有文件:
gradle-wrapper.属性
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
build.gradle(项目)
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
最后 build.gradle(应用程序)
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "cl.cutiko.testingupdate"
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:27.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
升级AndroidStudio后,可以使缓存失效重启
File
> Invalidate Caches / Restart…
关闭项目并重新导入。今天为我工作。
作为现有 Android Studio 项目关闭并重新打开项目
关闭一个项目,然后以现有项目的形式打开,真是太棒了!
您可以尝试关闭项目并退出 Android Studio(仅关闭并重新导入它对我没有帮助)。启动 Android Studio 并再次打开项目。这对我有用!
我关闭并重新打开项目作为现有 Android Studio 项目(没有导入它),它成功了!感谢 Andrew Glukhoff 的评论。
支持库不同步。
发生此错误是因为支持库与您的项目不同步。要恢复同步,您可以执行以下步骤:
- 打开您的应用模块的 build.gradle 文件
注释掉支持库的
implementation
行。对我来说,它看起来像这样://implementation 'com.android.support:appcompat-v7:27.1.1' //implementation 'com.android.support:recyclerview-v7:27.1.1' //implementation 'com.android.support.constraint:constraint-la
将您的项目与 gradle 同步。你现在会有一些错误。别担心。
取消注释您之前注释掉的
implementation
行。implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support:recyclerview-v7:27.1.1' implementation 'com.android.support.constraint:constraint-la
再次将您的项目与 gradle 同步。
"Cannot Resolve Symbol" 错误现在应该消失了。这在不同的项目中对我有用过几次。
备注
- 如果您的项目有多个模块,那么您需要一次对所有模块执行上述说明。
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:design:26.1.0'
在 build.gradle(project)
中使用以上内容更新您的依赖项并将以下代码放入 build.gradle(Module:app)
classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'io.realm:realm-gradle-plugin:3.7.1'
classpath 'com.google.gms:google-services:3.1.0'
再次导入项目对我不起作用。
我的解决方案是
- 删除项目中的
.idea
文件夹。 - 然后按
File> Close Project
关闭项目
- 然后从欢迎屏幕
File> New > Import Project
或导入项目Import Project (Gradle, Eclipse ADT, etc.)
.
查看屏幕截图了解更多信息
或
对我来说,同样的 symptom/error 是由于将新图像拖放到 'drawable-xxhdpi' 文件夹中导致的,该文件夹的名称 Android Studio 不喜欢 - 例如数字或大写在名字里。
仅 'cannot resolve symbol R' 消息没有给出有用的错误消息。
即使在同步应用程序并清理和重建项目后,问题仍然存在,即 'R' 未被识别且未指示其他错误。
按照其他答案中的建议关闭并导入项目无效,考虑到根本问题,这是有道理的。
然而,尽管这在过去似乎对其他人不起作用,但从 SO 上的其他问题和答案来看,从可绘制文件夹中删除新图像确实有效。
同样,一个更好的解决方案,显然,重命名图像以删除资源名称中 Android 不喜欢的任何字符,然后进行干净的 and/or 重建项目也有效。
示例
setContentView(R.layout.activity_login_ativity);
- 将光标放在R中
- 单击 Alt+Enter
- 选择导入class R
为我工作:)
我是怎么解决的。:
我更新了Android studio 到3.2版本,两步解决了这个问题。
已从 Android 工作室欢迎页面中删除。
再次打开项目。
对我有用。
问题#1
我的问题与我如何使用 Android 插件的 alpha/beta 版本有关
File > Project Structure > Project
检查你的Android Plugin Version
我正在使用一个叫做 3.3.0-beta
的东西,但在另一个项目中 3.1.0-alpha
将其更改为 3.2.0
似乎解决了我的问题,别忘了也更改 build.gradle(Project) 中的
问题#2
我的一个 .xml 文件中有一个错误。我错过了 @string
资源。请检查所有 xml 文件,并确保它们都是正确的(打开 xml 文件应该激活 Android Studio linting,滚动文件,如果有问题,它应该以红色抱怨错误)
问题#3
在 build.gradle
中,我导入了不同版本的 android 支持库。例如
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:27.1.0'
请确保它们是同一版本。并确保 Android Studio 不会在您的 gradle
依赖项中抱怨任何内容。可能是您的某些依赖项还导入了不同的 android 支持库版本。
#1、#2 和#3 之后要采取的步骤
清理你的项目Build > Clean Project
使缓存无效并重新启动File > Invalidate Caches / Restart
重启后,等待gradle构建完成,然后瞧!
我将我的 gradle 版本更新到 4.10.1 并做了 "fix and reimport"。之前.idea下没有libraries文件夹。然后成功了
当我更新到 com.android.tools.build:gradle 3.3.1
和 gradle-4.10.1
我尝试了以下方法但没有用:
Clean Project
-Rebuild Project
Invalidate Caches / Restart
- 检查
.xml
错误(我没有发现任何关于xml的错误) - 修改
.iml
文件
我通过修改 com.android.tools.build:gradle 3.2.1
和 Restart my mac
来修复这个错误,我不知道是哪个可以修复它,但它确实对我有用。