在当前主题中找不到样式“coordinatorLayoutStyle”

Posted

技术标签:

【中文标题】在当前主题中找不到样式“coordinatorLayoutStyle”【英文标题】:Failed to find style 'coordinatorLayoutStyle' in current theme 【发布时间】:2018-08-23 20:28:12 【问题描述】:

我正在使用最新版本的 android studio (3.0),以及最新的构建工具 (27) 和类似的 API 级别。

布局没有在设计选项卡中呈现,它造成了很多麻烦,尤其是我正在使用协调器布局。

我该如何解决这个问题?

【问题讨论】:

你试过invalidate caches/restart 吗? 请添加一些代码或更多解释 【参考方案1】:

这可能存在问题:https://issuetracker.google.com/issues/37048767

使用其他版本的 Android(比如 Android API 22)进行渲染。

或者检查任何拼写错误或无效的 XML 条目。

参考这里:Missing styles. Is the correct theme chosen for this layout?

【讨论】:

【参考方案2】:

感谢您的回复,我找到了修改代码的解决方案,

我在片段的父布局中启用了tools:showIn 属性,我将其移至视图页面,它之前嵌入在主机活动中,但 lint 没有捕捉到它,这有点令人惊讶。

【讨论】:

【参考方案3】:

我通过简单地将这一行插入应用程序主题(应用程序主题通常放在styles.xml中)解决了这个渲染问题。

[SDK 28]

<style name="AppTheme">
  <item name="coordinatorLayoutStyle">@style/Widget.Support.CoordinatorLayout</item>
</style>

[SDK 27]

<style name="AppTheme">
  <item name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>

正如@Chris 所建议的那样。如果 IDE 在 Widget.SupportWidget.Design 中没有找到 CoordinatorLayout,只需开始输入“CoordinatorLayout”,它应该会给你一些选项。

【讨论】:

在这上面浪费了几个小时。你知道为什么会这样吗?以前没问题,突然间 Android 有时很奇怪 eyeroll 感谢这为我解决了这个问题。 谢谢。 Android Studio 需要这个是荒谬的。 对你有好处,它发生在我启动 Hello World 应用程序时:D 意味着他们引入了一个内置错误 :)) 如果它说它不存在,试着输入开始输入“Coord”,它应该会给你一些选择。我的是@style/Widget.Support.CoordinatorLayout【参考方案4】:
 <style name="Theme.Shrine" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="coordinatorLayoutStyle">@style/Widget.Support.CoordinatorLayout</item>
</style>

添加您的材料主题。

【讨论】:

在我的 28 alpha 支持库中无法识别。 我必须这样做才能让我的工作。使用 Android Studio intellisense 找到它并开始输入“Coord”【参考方案5】:

我也遇到了同样的问题。从布局预览窗口更改主题对我没有任何帮助。

解决方案:我将build.gradle(app) 更新为:

dependencies 
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support:design:27.0.2'

还有一件事:

compileSdkVersion 27
targetSdkVersion 27

【讨论】:

或者保留在 SDK 28 上,而是将支持库版本从 28.0.0-alpha3 降级到 28.0.0-alpha1,如此答案 ***.com/a/51091869/1488656 中所建议的那样 这个是为我做的【参考方案6】:

我认为这是 android studio 3.0+ 中的常见问题, 希望他们会在下一次更新中修复它。在 Android Studio Preview 3.2 中它运行良好。 Download Android Studio Preview

【讨论】:

【参考方案7】:

顺便说一句,在 Android Studio 的设计视图中,如果我将以下内容添加到 styles.xml 文件中:

<style name="Coordinator">
    <item 
    name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>

并将以下内容添加到布局的 xml 资源文件中的 CoordinatorLayout

<android.support.design.widget.CoordinatorLayout
    android:theme="@style/Coordinator"
    android:orientation="vertical"
    android:id="@+id/sample_layout_id"
    android:layout_
    android:layout_
    android:background="@drawable/sample_background"
    tools:theme="@style/Coordinator">

那么,至少设计视图停止生成缺少的 coordinatorLayoutStyle 错误。

【讨论】:

您好,请尝试提及为什么它不起作用。以及您建议的更改为什么会有所作为。 由于 Android Studio 错误而无法正常工作。【参考方案8】:

implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'build.gradle(module) 将 alpha 3 更改为 alpha 1。同步,你应该很高兴。我花了将近一天的时间试图弄清楚这一点。这些答案都不适合我。希望这会有所帮助

【讨论】:

我不得不将实现 'com.android.support:design:28.0.0-alpha3' 也更改为 alpha1【参考方案9】:

不幸的是,当您创建新项目时,新的 SDK 28 会在 Android Studio 上引入此错误。

如何解决:

检查您的build.gradle (模块:app) 文件并更改:

compileSdkVersion 28
targetSdkVersion 28

收件人:

compileSdkVersion 27
targetSdkVersion 27

另外,请确保您使用的是正确的依赖版本:

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

【讨论】:

或者保留在 SDK 28 上,而是将支持库版本从 28.0.0-alpha3 降级到 28.0.0-alpha1,如此答案 ***.com/a/51091869/1488656 中所建议的那样 就是这样,将SDK 28改为27并同步Gradle解决了问题。 正如@Livven 所建议的,支持库 28.0.0-alpha3 存在一些问题。【参考方案10】:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>

只需将 coodrinatorLayoutStyle 作为一个项目添加到 style.xml 中,它就对我有用。

【讨论】:

【参考方案11】:

我的 Android Studio 版本 3.1.3。 我正在卸载所有 SDK 版本 28。步骤是打开 SDK 管理器 > SDK 平台 > 显示包详细信息 > 取消勾选 SDK 28 > 应用并创建新项目。

【讨论】:

【参考方案12】:

对于 Android Studio 3.1.4 用户: 我已经尝试过标记答案,但它对我不起作用。 插入这一行:

<style name="AppTheme.NoActionBar">
   <item name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>

进入应用程序主题并不能解决渲染问题,所以我撤消了该更改。

解决方案: 我在 build.gradle(Module:app) 文件中进行了这些更改:

更改前:

android 
   compileSdkVersion 28
      defaultConfig 
         targetSdkVersion 28
      
   


dependencies 
   implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
   implementation 'com.android.support:design:28.0.0-rc01'

改动后:

android 
   compileSdkVersion 27
      defaultConfig 
         targetSdkVersion 27
      
   


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

它非常适合我。希望对您有用。

【讨论】:

Google 是否有可能发布 RC 而我们仍然需要使用 27?【参考方案13】:

我有同样的问题,但在 Android studio 3.1.4 上

所以,起初我在 build.gradle 中做了以下操作

替换这个:

实现'com.android.support:appcompat-v7:28.0.0-rc01'

实现'com.android.support:design:28.0.0-rc01'

实现'com.android.support:support-v4:28.0.0-rc01'

这样:

实现'com.android.support:appcompat-v7:28.0.0-alpha1'

实现'com.android.support:design:28.0.0-alpha1'

实现'com.android.support:support-v4:28.0.0-alpha1'

但不知何故,在项目重建后,问题再次出现。

所以,我走了这条路:

这是我的项目 gradle.build

buildscript 
    ext.kotlin_version = '1.2.41'
    ext.android_support = '27.1.1'
    repositories 
        google()
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.1.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


allprojects 
    repositories 
        google()
        jcenter()
        maven  url "https://jitpack.io" 
    


task clean(type: Delete) 
    delete rootProject.buildDir

这里是 app build.gradle

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android 
    compileSdkVersion 27
    defaultConfig 
        applicationId "*****.******"//Replace with your own ID
        minSdkVersion 16
        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'
        
    
    compileOptions 
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    


dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'

    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

这解决了我的问题

谢谢

【讨论】:

【参考方案14】:

只需更改实现 'com.android.support:appcompat-v7:28.0.0-alpha3' 和 'com.android.support:design:28.0.0-alpha3' 到 alpha 1。 我就是这样解决问题的。

【讨论】:

【参考方案15】:

我会发布一个答案 其他答案可能有效,但没有人应该需要下载预览版并且在没有操作栏的情况下进行 Material Design 不是开始使用 Android Studio 开发应用程序的方式 我们的 Android Studio 版本是 3.1.4 我们的默认 API 是 28 我们的修复是降级到 API 26,您可以通过单击 File -> Project Structure 然后突出显示 app 在 Properties 选项卡下将 Compile Sdk 版本更改为 API 26 现在单击 Falavors 选项卡并更改 Target Sdk 版本到 26 然后在 build.gradle(module:app) 中添加这些更改

implementation 'com.android.support:appcompat-v7:27.0.0'
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'

我想人们总是可以证明谷歌这个缓慢的 FIX 是为了学习使用工具栏

【讨论】:

【参考方案16】:

我在 IDE 中更新所有 SDK 工具并将 Android Studio 更新到 3.2.1 时解决了这个问题

【讨论】:

【参考方案17】:

它对我有用,试试吧

   compileSdkVersion 28
        defaultConfig 
            minSdkVersion 16
            targetSdkVersion 28
           

 implementation 'com.android.support:appcompat-v7:28.0.0'
 implementation 'com.android.support:design:28.0.0'

【讨论】:

【参考方案18】:

这是 sdk 28 问题

检查您的 build.gradle(模块:app)文件并进行更改:

compileSdkVersion 28

targetSdkVersion 28

收件人:

compileSdkVersion 27

targetSdkVersion 27

【讨论】:

以上是关于在当前主题中找不到样式“coordinatorLayoutStyle”的主要内容,如果未能解决你的问题,请参考以下文章

在当前主题中找不到样式“coordinatorLayoutStyle”

Android Material Design:在当前主题中找不到样式“toolbarStyle”

在当前主题中找不到“@attr/shapeAppearanceSmallComponent”

查找由 android 平台主题定义的所有可用样式

Glassfish 3.1.2.2:IIOP1002:主要传播:在主题中找不到主要信息

在 Cordova iOS 应用程序中找不到脚本/样式表