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

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

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

我该如何解决这个问题?

【问题讨论】:

  • 你试过invalidate caches/restart 吗?
  • 请添加一些代码或更多解释

标签: android android-layout android-studio android-coordinatorlayout


【解决方案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,如此答案 stackoverflow.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_width="match_parent"
            android:layout_height="match_parent"
            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,如此答案 stackoverflow.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

                      【讨论】:

                        猜你喜欢
                        • 2018-11-24
                        • 2019-02-13
                        • 2018-12-05
                        • 2011-11-14
                        • 1970-01-01
                        • 2018-08-15
                        • 2012-01-20
                        • 2019-01-31
                        相关资源
                        最近更新 更多