【问题标题】:cannot resolve symbol AppCompat无法解析符号 AppCompat
【发布时间】:2017-08-10 16:38:18
【问题描述】:

我正在尝试使用 Android Studio 向现有的 Android 移动应用程序添加启动画面。从我研究过的所有内容来看,我需要使用 AppCompat 来执行此操作,但每次我尝试将其添加到我的 styles.xml 文件时,Android Studio 都会告诉我“无法解析符号“AppCompat””。为了让代码接受它,我应该在样式页面之前添加它吗?我的代码如下。

样式.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme" parent="AppCompat">
        <item name="android:colorPrimary"></item>
    </style>

    <style name="SplashTheme" parent="Theme.AppTheme">
        <item name="android:windowBackground">@drawable/background</item>
    </style>

</resources>

我尝试将它添加到我的 AndroidManifest.xml 文件中没有效果,我在该文件中收到错误“未知资源类型”。

当我尝试将主文件更改为: “公共类 Snake 扩展 AppCompatActivity” 我再次收到“无法解析符号”错误。

我觉得我所阅读的指南遗漏了一些关键但又非常明显的步骤,大多数熟悉 Android 的人都非常清楚。很遗憾,我对 Android 还是很陌生,正在努力学习。

【问题讨论】:

  • 通过一些探索点击我发现我在 Android Studio 中处于“离线模式”。禁用离线模式后,成绩能够自动修复。

标签: java android xml appcompatactivity


【解决方案1】:

所以将 AppTheme 父级更改为 Theme.AppCompat.Light.NoActionBar,这样样式就会是这样的:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:colorPrimary"></item>
</style>

<style name="SplashTheme" parent="Theme.AppTheme">
    <item name="android:windowBackground">@drawable/background</item>
</style>

您有这些错误无法解析符号 AppCompat,因为只有类型 AppCompat 不是主题,AppCompat 是主题资源中的符号。所以每次需要设置 AppCompat 主题时,都需要输入 Theme.AppCompat 来获取主题 AppCompat。

【讨论】:

    【解决方案2】:

    你的 Gradle 依赖项中应该有 compile "com.android.support:appcompat-v7:25.3.1"

    您可以创建带有 ActionBar 和不带 ActionBar 的主题。如果您在活动中使用工具栏,您可能应该使用无操作栏主题。相应地选择您的主题。

    像这样创建样式文件。

    使用 ActionBar

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:colorPrimary"></item>
    </style>
    
    <style name="SplashTheme" parent="Theme.AppTheme">
        <item name="android:windowBackground">@drawable/background</item>
    </style>
    

    没有 ActionBar

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:colorPrimary"></item>
    </style>
    
    <style name="SplashTheme" parent="Theme.AppTheme">
        <item name="android:windowBackground">@drawable/background</item>
    </style>
    

    现在在清单中引用主题。希望它会工作:)

    【讨论】:

    • 我按照您的建议将该行添加到依赖项中,现在我无法同步我的项目,出现错误“Gradle Sync Failed: content not allowed in a trailing section”。我的 Gradle 文件以前没有依赖项部分,所以我可能添加不正确。我添加了:依赖项 { compile 'com.android.support:appcompat-v7:25.3.1' }
    • 你能发布完整的 gradle 文件吗?
    • 应用插件:'com.android.application' android { compileSdkVersion 26 buildToolsVersion '26.0.0' defaultConfig { applicationId "com.example.android.snake" testApplicationId "com.example.android.snake.测试” testInstrumentationRunner “android.test.InstrumentationTestRunner” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } 依赖项 { 编译 'com.android.support:appcompat -v7:25.3.1' }
    • 您使用的是 compileSdkVersion 26,因此将支持版本更新为 26.0.0。 (编译'com.android.support:appcompat-v7:26.0.0')
    • 清理您的项目并重新构建并运行。
    猜你喜欢
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 2016-12-31
    • 1970-01-01
    • 2015-11-11
    相关资源
    最近更新 更多