Android Studio 3.1 无法解析符号(主题、小部件、属性等)
Posted
技术标签:
【中文标题】Android Studio 3.1 无法解析符号(主题、小部件、属性等)【英文标题】:Android Studio 3.1 Cannot Resolve Symbol (Themes, Widget, attr, etc.) 【发布时间】:2018-09-06 11:27:28 【问题描述】:我今天将 android Studio 升级到 3.1,现在 Android Studio 说它无法解析大多数资源的符号(例如 styles.xml
或 ?attr/actionBarSize
中的 ThemeOverlay
)。到目前为止,这似乎并没有阻止我在模拟器中构建或运行,但这些错误让我感到紧张。
还有其他人遇到过这个问题吗?我该如何解决它?我尝试过同步 gradle 并清理我的项目,但似乎没有任何帮助。
有什么想法吗?
我正在使用带有 Gradle 版本 4.4 和 Gradle Plugin 3.1.0 的 Android Studio 3.1
编辑: 此问题会影响更新到 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。但是,下面的答案仍然有效。
【问题讨论】:
在 3.1.1 中我们也得到了这个! 在 3.1 中。以下 2 个相同的问题不起作用,该怎么办 @HemanthSP 在将 Android Studio 更新到 3.1.2 后关闭和导入项目对我有用。 我试过 100 种方法都不管用 试试这个:***.com/a/50114143/2855059 【参考方案1】:由于某种原因,这些属性在 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.properties
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 (app)
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'
【讨论】:
感谢 cutiko,但不幸的是,这对我没有帮助,因为我已经在使用 API 27,而且您的文件看起来与我的相似。 好吧,猜猜看,构建/重建项目?还干净吗? 谢谢cutiko。我已经试过了,但也没有用。【参考方案2】:升级Android Studio后,可以使缓存失效并重启。
File
> Invalidate Caches / Restart…
【讨论】:
感谢 Jorgesys,但这对我也不起作用。 有史以来第一次 - 简单的解决方案真正奏效了!谢谢。 @AhabLives 我希望在 AS 的未来版本中可以解决这个问题,但现在使缓存无效并重新启动就足够了。 在尝试了几种解决方案后,它终于对我有用了【参考方案3】:关闭项目并再次导入。今天为我工作。
【讨论】:
使缓存失效、手动删除 gradle 缓存和其他技巧都不起作用。关闭项目并再次导入它工作。哇!我很期待 Android Studio 4.0。也许它会烧毁我的房子 打开现有的 Android Studio 项目也适用于 Welcome to Android Studio。 我关闭并重新打开项目作为现有的 Android Studio 项目(没有导入它),它工作! 仅供参考,我将 Android Studio 从 3.1 更新到 3.1.1,问题再次出现。但是这个答案仍然有效,所以我更新了帖子。 为什么会这样?!【参考方案4】:作为现有 Android Studio 项目关闭并重新打开项目
【讨论】:
【参考方案5】:关闭一个项目,然后像现有的一样打开一个项目真是太棒了!
【讨论】:
Aaaaand... 这对我有用!出奇。虽然代码之前已经编译得很好,但红色下划线让我很恼火。谢谢大佬。【参考方案6】:您可以尝试关闭项目并退出 Android Studio(仅关闭并重新导入它对我没有用)。启动 Android Studio 并再次打开项目。这对我有用!
【讨论】:
【参考方案7】:我关闭并重新打开项目作为现有的 Android Studio 项目(没有导入它),它工作!感谢Andrew Glukhoff 的评论。
【讨论】:
【参考方案8】:支持库不同步。
发生此错误是因为支持库与您的项目不同步。要使其重新同步,您可以执行以下步骤:
-
打开您的应用模块的 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 同步。
“无法解析符号”错误现在应该消失了。这在不同的项目中对我有用多次。
注意
如果您的项目有多个模块,那么您需要一次性按照上述说明操作所有模块。【讨论】:
这实际上对我有用...关闭项目并重新导入没有。【参考方案9】: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'
【讨论】:
【参考方案10】:再次导入项目对我不起作用。
我的解决方案是
-
删除项目中的
.idea
文件夹。
然后通过 File> Close Project
关闭项目
然后通过File> New > Import Project
OR从欢迎屏幕Import Project (Gradle, Eclipse ADT, etc.)
导入项目。
查看屏幕截图了解更多信息
或者
【讨论】:
【参考方案11】:对我来说,同样的症状/错误是由于将新图像拖放到“drawable-xxhdpi”文件夹中而导致的,其名称为 Android Studio 不喜欢 - 例如名称中带有数字或大写字母。
没有给出有用的错误消息,只是“无法解析符号 R”消息。
即使在同步应用程序并清理和重建项目之后,问题仍然存在,即无法识别“R”并且没有指示其他错误。
按照其他答案中的建议关闭和导入项目不起作用,考虑到根本问题,这是有道理的。
但是,尽管过去似乎这对其他人不起作用,但从 SO 上的其他问题和答案来看,从可绘制文件夹中删除新图像确实有效。
同样,一个更好的解决方案显然是重命名图像以删除资源名称中 Android 不喜欢的任何字符,然后进行清理和/或重建项目也有效。
【讨论】:
【参考方案12】:例子
setContentView(R.layout.activity_login_ativity);
-
将光标放在R中
点击 Alt+Enter
选择导入类 R
为我工作:)
【讨论】:
您能否改进对答案的解释?否则这篇文章似乎没有为问题提供quality answer。请编辑您的答案,或将其作为对问题的评论发布。【参考方案13】:我是如何解决的。:
我将 Android studio 更新到 3.2 版本,两步解决了这个问题。
已从 Android Studio 欢迎页面中删除。
再次打开项目。
为我工作。
【讨论】:
【参考方案14】:问题 #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 build 完成,然后瞧!
【讨论】:
【参考方案15】:我将我的 gradle 版本更新为 4.10.1 并进行了“修复并重新导入”。 .idea 下没有库文件夹。然后就成功了
【讨论】:
【参考方案16】:当我更新到 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 无法解析符号(主题、小部件、属性等)的主要内容,如果未能解决你的问题,请参考以下文章
无法解析符号'setOnClickListener' - Android Studio
Android Studio 无法解析符号“TabLayout”