在styles.xml中无法解析符号'Theme'(Android Studio)

182

屏幕截图

从今天开始,Android Studio在styles.xml中找不到AppCompat主题,但代码中的AppCompatActivity可以被识别出来。我的Android Studio版本是2.2.2,Build #AI-145.3360264。

我已经尝试升级到最新的构建工具、编译sdk(25)版本等,但这并没有解决问题。

目前,我已经安装了以下内容(从sdk管理器中):

  • android API:19和23
  • sdk平台工具:25.0.1
  • sdk工具:25.2.3
  • build-tools:23.0.2和25.0.1
  • support repository:40
  • google repository:39

还有其他一些内容,不必在此列出。

app的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '25.0.1'
    defaultConfig {
        applicationId "xxx.xxxxxxxx.xxxxxxxxx" //not the real applicationId
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {

        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/RootTools.jar')
    compile 'com.android.support:support-v4:23.+'
    compile 'com.android.support:support-v13:23.+'
    compile 'com.android.support:appcompat-v7:23.+'
    compile 'com.android.support:design:23.+'
    compile 'com.android.support:cardview-v7:23.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
    compile 'de.hdodenhof:circleimageview:2.1.0'
}

4
这个项目是否能够编译,还是只有集成开发环境在抱怨?尝试使用“使缓存无效/重新启动”功能。 - Eugen Pechanec
1
清除缓存/重启没有任何改变,只有IDE在抱怨,编译工作正常。可能浪费了您的时间,抱歉,我只是担心错误会消失,并没有意识到编译仍然正常运行 ^^ - FLP
1
我遇到了相同的错误,但编译正常。 - Pablo Cegarra
10
当其他所有解决方案都失败时,这个对我很有帮助。 - Tabish
1
刚遇到这个问题(在Android studio 3.1.3中)。移除 appcompat-v7 并在重新添加之前进行同步有所帮助。让我们一起点赞并期待在 issuetracker.google.com/issues/67790757 上的更新。 - sunadorer
24个回答

217

对于我在使用Android Studio 3.1.2时可行的另一种解决方案:

如果您在build.gradle中有以下内容,请删除它们:

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

然后进行同步, 再撤销删除, 最后再次同步。


23
工作了,非常奇怪 :D - mes
3
太棒了。我尝试了5或6个其他答案,但这最终是起作用的。谢谢! - albert c braun
2
如果这是您的解决方案,就像我的一样,您只需在此操作一次后进行清理和重建,它就会再次修复。 - user6911980
5
好的,那很傻但却能奏效。得爱上这个有毛病的AS(指某个软件或工具)。感谢你的提示。 - Sam
4
它可行,只需在Gradle的dependencies{上加或取消注释即可。 - Nakamoto
显示剩余7条评论

107

我在升级Android Studio 3.1后遇到了这个问题。

这里列出的其他答案都对我没有用,但是当我将我的appcompat支持库版本切换到最新的28.0.0-alpha1,然后再切回之前的27.1.0时,就可以正常工作了。

似乎Android Studio的新版本断开了与库同步的连接,只需要重置一下即可。


7
我原本使用的是26.0.1版本,升级到27.1.1版本(同时将编译版本从26升级到27),所有错误都消失了(确实没有其他方法可以解决这个问题)。 - Daniel Wilson
我在升级到AS 3.1后也遇到了这个问题。谢谢,这对我很有帮助。 - Bek
4
回到版本26.0.1,然后升级到27.1.1同样可行。 - adek111
8
根据我的经验,这种解决方案是最可靠的,但这并不是一件好事。AS不应该需要这样的权宜之计。 - jwehrle
1
这个解决方案有效。我只是有些失望,因为愚蠢的IDE + Gradle故障排除花费了很多时间。 - Rohan
显示剩余4条评论

96

不需要做任何更改。

只需点击顶部的小按钮 "Sync Project with Gradle Files" 即可。


8
Android Studio 3.1也出现了同样的问题。 - live-love
15
在AS 3.1上使用我的应用程序兼容性支持库时,我不得不将版本切换到最新的“28.0.0-alpha1”,然后再切回“27.1.0”,才能使其正常工作。似乎新版本的AS与同步库的位置失去了连接,只需重置即可解决问题。 - kassim
9
Android Studio 3.1.1,遇到了同样的问题。 - CodeAlo
3
无法解决我的问题。 - jrswgtr
7
只有关闭该项目并将其从最近项目列表中移除(注意项目路径),然后重新打开项目,我的问题才能得到解决。或许这会强制重建缓存…… - SammyT
显示剩余6条评论

91

编辑:正如@Alexey所指出的,这个错误在Android Studio v3.1.4中仍然存在。

这个方法对我有用:

  • 点击文件 > 关闭项目
  • 从Studio的对话框中重新打开项目。

输入图像描述


3
请注意,这将重置您的窗口偏好设置——各个窗格的大小、在启动时显示的选项卡等。它还会将您所使用的版本切换回调试模式,这将有效地清除项目中所有编辑器首选项和设置。 - InsanityOnABun
这个方法可行!但我还是很好奇为什么一开始会出现这种情况。我修改了colors.xml中的几个颜色,但不明白它们与问题有何关联,或许是AS 3.1.2的一个bug? - Rohit Sharma
AndroidStudio 错误。如@InsanityOnABun所提到的,在这种情况下关闭和重新打开项目可以重置许多内容。在此过程中,与错误相关的问题会消失。 - Ευάγγελος Μπίλης
1
@ΕυάγγελοςΜπίλης刚刚在Android Studio 3.1.3中遇到了这个错误,并以你的方式解决了它;你可以更新你的答案,让大家都知道它也适用于AS 3.1.3。 - Atif Farrukh
这对我解决了问题。这在2022年仍然是一个问题。 - automaton
显示剩余2条评论

38
由于在Android Plugin 2.3.0及以后版本中默认启用了名为“构建缓存”的功能,因此出现了这种情况。 它会在项目文件夹之外的构建缓存中创建文件(在我的情况下是\Users\%username%\.android\build-cache)。 这些文件旨在在您的项目之间共享。
然后,Android Studio无法浏览这些文件。 就是这样。
如果要禁用Build Cache,请将android.enableBuildCache=false添加到gradle.properties文件中。然后重新启动Android Studio。
更多信息请参见: https://developer.android.com/studio/build/build-cache.html#disable_build_cache

2
非常感谢,请更新您的答案并告诉其他人,在更改 gradle.properties 文件后应该重新启动 Android Studio。 - Igor Tyulkanov
2
这个在一段时间内运行正常,但是后来错误又重新出现了。 - rmtheis
这不是解决方案,我们需要保持构建缓存启用,并且不要看到这个错误。 - M D P
@m-d-p 解决方案是在Android Studio中修复错误。这是一个解决方法。 - babay
选项 'android.enableBuildCache' 已过时。 当前默认设置为 'false'。 - Ajay Prajapati

27

我曾经遇到过相同的问题,唯一有效的解决方法是在文件系统中手动删除支持库并将项目 同步以便让Android Studio重新下载它们。

步骤:

  1. 进入您的项目文件夹文件系统
  2. 转至.idea\libraries
  3. 删除所有的Gradle__com_android_support_****.xml文件
  4. 打开Android Studio
  5. 选择文件 > 同步文件系统
  6. 完成后,选择文件 > 用Gradle文件同步项目
  7. 构建项目

现在您的错误应该已经消失了!


只有这种方式适用于28个构建工具版本。 :) - Farya
非常好用!谢谢! - Hexise
@Tricky Bay,你有这个问题的解决方案吗?谢谢!https://stackoverflow.com/questions/53323910/android-resource-linking-failed-textappearance-compat-notification-on-android?noredirect=1#comment93599900_53323910 - Eric

19

如果遇到问题,可以点击文件->无效缓存/重启... 如果这样无法解决问题,可以关闭项目(文件->关闭项目),然后再导入项目(文件->新建->导入项目)。


在我的情况下,“无效缓存/重新启动…”起作用了。看起来这个错误的原因是各种各样的。 - wonsuc
1
这对我有用。 关闭项目+删除项目(右上角的x)+导入现有项目Android Studio 3.1.3 com.android.tools.build:gradle:3.1.3 - Jan
Ya在2018年工作过!使用的是Android Studio 3.1.3和Gradle 3.1.3。 - PanCrucian

12

我将支持库切换到版本27.1.1,问题已经解决。似乎是在27.1.0中出现了一些错误。


2
我同意,如果你使用了ViewPager,请不要使用27.1.0版本。我的应用程序每天崩溃20次。https://issuetracker.google.com/issues/74130311 在27.1.1中已经修复,并且由于setUserVisibleHint首先加载可见的片段,我的应用程序似乎加载更快了。 - SammyT
6
@SammyT - 我认为这个问题与27.1.0和27.1.1无关,因为我在27.1.1中也遇到了同样的问题。我认为只要更改支持库的版本就可以清除错误,不管使用的是哪个具体版本。请参见@kassim的答案(链接为https://dev59.com/YFkR5IYBdhLWcg3w0AKy#49638518)。 - Ted Hopp
1
@TedHopp 我同意你的观点。对于这个特定的问题,关闭项目并从最近的项目中删除该项目,然后重新打开该项目可以解决它(无论支持库版本如何)。抱歉我的评论读起来与我想表达的不同,我只是在提醒大家注意使用27.1.0版本的库时要小心,因为该版本库存在一个错误,会影响ViewPager的使用。 - SammyT
谢谢,经过多次尝试,这对我有用了。我使用的是编译SDK 27,并将每个升级到27.1.1。 - sanjeeb
不,不是这样的,我使用的是27.1.1版本,问题仍然存在。 - Eli

10

当我升级到 alpha-2 时,我也遇到了同样的问题。

我看了这个链接:http://tools.android.com/recent,但唯一有效的方法是:

在你的 build.gradle (Project) 中将这个: Classpath 'com.android.tools.build:gradle:2.3.0-alpha2'

改成这个: Classpath 'com.android.tools.build:gradle:2.2.3'


4

只有这个对我有效

  • 关闭项目(文件> 关闭项目)
  • 重新导入/重新打开项目(不是从最近的选项中打开

现在应该已经解决了错误。

如果这样不能解决问题,则尝试以下步骤-

  • 打开build.gradle,删除appcompact-v7依赖项并同步项目。
  • 添加appcompact-v7依赖项并同步。

也许你的依赖关系出了问题。哪个解决方案对你有用? - Khemraj Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接