Android Studio 3.0无法解析符号Theme。

29

如 style.xml 中所述,出现了一个奇怪的错误,显示“无法解析符号'Theme'”,这是相当奇怪的。

请参见错误图片:

enter image description here

我的项目规格:

使用 Android Studio 3.0

和 gradle 版本 3.0.0

和 distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip

编辑:

尝试通过转到文件 > 使缓存无效/重启 > 无效并重启来清除缓存,但无济于事,错误仍然存在。


1
这个链接(https://dev59.com/j1cP5IYBdhLWcg3wr74G#48734990)帮了我很多。 - Tabish
我已经尝试了几种方法,但是没有解决。我认为Gradle版本和Android Studio版本应该匹配。 - James DCranmer
10个回答

68

升级到Android Studio 3.1(编辑:在v3.1.3版本中仍然存在相同的问题)后,我遇到了同样的问题。对我有效的方法是单击文件 > 关闭项目,然后从Studio的对话框中重新打开该项目。

Android Studio的入口屏幕


4
这也是对我有效的唯一方法,我也尝试了其他答案(我认为是3.1版本的错误)。 - Mihai
在3.1版本之后,我花了一个小时做各种奇怪的事情来尝试修复它,谢谢! - Windmill
从 "最近的项目" 中删除后,对我有用。 (文件,打开最近使用的项目,管理项目) - SammyT
1
尽管进行了各种不同的尝试,AS 3.1.1仍然会继续出现上述错误。 - blackjack
1
它对我起作用了(Android 3.1.2)。无论是“使缓存失效/重新启动”还是“与Gradle文件同步项目”,都没有起作用。只需要按照这里描述的关闭项目并重新打开即可。现在错误已经消失了。 - user8945441
显示剩余7条评论

20

可能的另一个原因是:构建脚本没有设置Google的Maven存储库。

在您项目的主build.gradle中添加行:

buildscript {
    repositories {
        google()  <-- this
        // Be also sure that google() is before jcenter()
    }
}

如果没有这个,可能无法下载Android Studio Gradle插件3.0+。它不会在jCenter中分发,而是在Google的Maven存储库中。


2
以上建议都对我在插件3.1.x中无效,但幸运的是,我仍然可以编译项目(尽管红色字母指示出有错误)。 - Gabor
即使有红色字母,运行lint也能正常工作。这一定是IDE的bug。 - Gabor
@Gabor,IDE的问题是不同的,而且是最近出现的。几周前升级后我开始看到它。但OP的错误是一个真正的阻碍。除非你解决了它,否则无法构建。 - WindRider
2
这并没有帮助。 - Lakshman Chilukuri
2
解决方案对我无效。Google Maven仓库已经在我的gradle.build文件中了。 - jrswgtr
显示剩余2条评论

8
我的做法是点击Gradle打开Gradle项目工具窗口,然后点击刷新。我想一些依赖项没有正确加载。

6
在我的情况下,无效缓存/重启 对我来说运行良好。

enter image description here


3

前往 文件 -> 无效缓存/重启... -> 无效并重启

Android Studio 会在某种程度上关闭删除所有缓存、索引等。然后,Android Studio 将再次打开。索引将被完成,您可以继续进行。


无法相信这个功能存在。谢谢! - Lucas Moretto

2

看起来是“注入引用”的设置更新。在设置对话框中搜索这个词并将其“严重性”选项更改为不同的值,然后应用,然后再改回原始选择。编辑器中的错误突出显示将消失。


谢谢,您能解释一下什么是“注入引用”吗?顺便说一句,我已经更新到beta 5并且问题得到了解决 :) - Pulkit
我之前也不太确定,遇到了和你一样的问题。我把光标移动到错误的地方,点击灯泡图标,它会给出一些关于问题的提示。 - albert
1
点击文件 -> 无效化并重启 -> 无效化并重启以解决问题。 - Pulkit

1

Solution 1:

  1. GOTO > 'build.gradle(Module:app)',
  2. ADD > "buildToolsVersion '28.0.2'" as following :

android {
    signingConfigs {}
    compileSdkVersion 28
    defaultConfig
    {
        applicationId "com.example.project"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes
    {
        release
        {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    buildToolsVersion '28.0.1'
}
  1. Click on 'Sync Now', and it's done.
  2. GOTO > 'File' > 'Invalidate Cache/Restart'.
  3. Done.

If That doesn't work, following might help (Solution 2) :

  1. GOTO > 'SDK Manager' > 'SDK Tools' > Click on 'Show Package Details',
  2. Check if there is a NEW Version of 'SDK Build-Tools' Available,
  3. Then Download it and Change to newer version "buildToolsVersion '28.0.x'" in 'build.gradle (Module:app)',
  4. Sync again.
  5. GOTO > 'File' > 'Invalidate Cache/Restart'.
  6. Done.

If That doesn't work, following might help (Solution 3) :

  1. Remove/Cut following dependencies :

    implementation 'com.android.support:appcompat-v7:x.x.x'
    implementation 'com.android.support:design:x.x.x'
    
  2. Click on 'Sync Now',

  3. Add/Paste dependencies again and Sync again.
  4. Done.

NOTE : You can do Solution 1 then 2 then 3 for better results.

Hope it helped :)


0

最简单的解决方案

  • 关闭项目
  • 重新导入/打开项目(从目录中打开)

0
关闭项目并重新导入。今天对我有效。

-2

从应用程序的build.gradle中删除'com.android.support:appcompat-v7:27.0.0','com.android.support:design:27.0.0'编译,然后同步,再次粘贴这两个编译并同步... 这将解决问题。


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