【问题标题】:No resource identifier found for attribute 'layout_behavior' in package在包中找不到属性“layout_behavior”的资源标识符
【发布时间】:2015-12-26 06:27:45
【问题描述】:

在我尝试向其添加库之前,我的应用程序运行良好。添加库后,Android Studio 出现以下错误:

错误:(26) 未找到属性的资源标识符 包“inf..”中的“layout_behavior”

这是我的 build.gradle 文件:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.ogaclejapan.smarttablayout:utils-v4:1.3.0@aar'
    compile 'com.ogaclejapan.smarttablayout:library:1.3.0@aar'
    compile 'com.jpardogo.materialtabstrip:library:1.1.0'
    // compile 'com.lorentzos.swipecards:library:1.0.9@aar'
    compile 'com.android.support:cardview-v7:21.0.3'
    compile 'com.android.support:recyclerview-v7:21.0.3'
    compile 'com.melnykov:floatingactionbutton:1.3.0'
    compile project(':swipelib')
}

这是导致错误的xml:

 <android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

我尝试了以下方法:

  • 删除了库
  • 重置 Android Studio 和我的电脑
  • 从 git 恢复到我的代码的以前版本。

但是,错误仍然存​​在。我该如何解决这个问题?

【问题讨论】:

    标签: java android xml android-studio tabs


    【解决方案1】:

    该字符串资源在 Material Design 支持库中定义。

    由于您没有使用 Material Design 支持库中的 CoordinatorLayout,您应该能够安全地删除 app:layout_behavior 属性。它可能是从其他代码中剪切和粘贴的。

    注意:如果您实际使用 CoordinatorLayout 并希望协作滚动行为起作用,则需要将最新版本的 Material Design Support 库的依赖项添加到您的 Gradle 构建文件中:

    compile 'com.android.support:design:23.0.1'
    

    更新:请注意,在最新版本的 Gradle 中,compile 配置已被弃用,取而代之的是 implementationapi 配置,因此您的依赖关系可能如下所示:

    implementation 'com.android.support:design:27.0.2'
    

    这只是一个例子;当您阅读本文时,版本号可能已过期,因此请确保您的版本与您要使用的支持库的版本相匹配。

    欲了解更多信息:What's the difference between implementation and compile in gradle

    【讨论】:

    • 请确保您使用的是最新版本的设计库。为了获得最新版本,请查看设计库的官方页面。 developer.android.com/training/material/…撰写此评论时,最新版本为compile 'com.android.support:design:25.3.1'
    • 在 app/build.gradle 中,我将版本 26.1.0 放在 "dependencies{compile 'com.android.support:design:26.1.0}" _ 中,谢谢! @kris larson!
    【解决方案2】:

    以防万一其他人来自 Google 并犯了与我相同的错误,它是 layout_behaviOr,而不是 layout_behavioUr

    【讨论】:

      【解决方案3】:

      对于那些使用 AndroidX 并且不想添加旧库的人:

      com.android.support:design:28.0.0
      

      您可以添加:

      implementation 'com.google.android.material:material:1.0.0'
      

      并像这样使用它:

      app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"
      

      【讨论】:

      • 另外app:layout_behavior="@string/appbar_scrolling_view_behavior"添加素材库后也可以使用。
      【解决方案4】:

      注意:目前版本有所变化,请将以下版本替换为最新版本。

      如果不需要 layout_behavior,接受的答案会消除错误,但是如果您真的想使用:

      app:layout_behavior="@string/appbar_scrolling_view_behavior"
      

      确保将正确的依赖项添加到模块的 build.gradle 文件中:

      apply plugin: 'com.android.library'
      
      android {
          compileSdkVersion 23
          buildToolsVersion "21.1.2"
      
         //Other stuff....
      }
      
      dependencies {
      
          //Importing the design library fixes the build
          compile 'com.android.support:design:23.1.0'
      
          //Other libraries....
      }
      

      即将此行添加到您的依赖项中:

      compile 'com.android.support:design:23.1.0'
      

      【讨论】:

      • 但是你到底怎么知道com.android.support:design:23.1.0 是解决app:layout_behavior = "@string/appbar_scrolling_view_behavior" 问题的方法
      • @dsdsdsdsd 我刚试了一下,因为我在某些时候遇到了同样的问题
      • 我的库已经有这个依赖,但它仍然显示相同的错误。当我将设计库添加到应用程序项目 gradle 依赖项时,它就会消失。当它已经在库中时,为什么我必须将它添加到应用程序项目中?有什么解决办法吗?
      • @Asu 不确定那里发生了什么,但也要注意版本已经被弓改变了——所以你应该使用最新的设计库版本。您可以检查是否找到有关您在此处提到的行为的一些信息:developer.android.com/studio/build/dependencies.html
      【解决方案5】:

      对于那些使用 androidX 的人

      com.android.support:design is now moved to com.google.android.material
      

      你需要包含这个

      implementation 'com.google.android.material:material:1.1.0-alpha02' 
      

      【讨论】:

      • com.android.support:design is now moved to com.google.android.material
      【解决方案6】:

      如果您还没有添加 android 材料,请先在 build.gradle 文件的依赖项中添加这一行

      implementation 'com.google.android.material:material:1.0.0'
      

      然后改用这个属性

      app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"
      

      【讨论】:

      • 即使我在“compileSdkVersion 29”中也遇到了这个错误。所以,我添加了这一行实现'com.google.android.material:material:1.0.0'。它解决了错误。
      【解决方案7】:

      将“app:layout_behavior="@string/appbar_scrolling_view_behavior”替换为app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"

      【讨论】:

        【解决方案8】:

        我使用的是Androidx,所以我实现了implementation 'com.google.android.material:material:1.1.0-alpha05'

        但它仍然给我错误Unresolved class @string/appbar_scrolling_view_behavior

        所以我发现只是无效缓存/重新启动

        最快的方法是文件 → 使缓存无效/重新启动... → 只需重新启动。

        希望对你有帮助。

        注意:在 Android Studio v3.4 中显示 app:layout_behavior="@string/appbar_scrolling_view_behavior" Unresolved class @string/appbar_scrolling_view_behavior 但在您运行应用程序时可以工作。

        【讨论】:

        • thx,只需重新启动使其在 v3.4 中工作,但几分钟后,它自动变成红色
        • 我已经迁移到 androidx 包(即实现 'com.google.android.material:material:1.0.0'),并且看到了同样的情况。我使缓存无效并重新启动,红色错误消失了几秒钟,然后又回来了。
        • @tfrysinger 运行您的应用程序,红色错误始终存在,直到下次更新:)
        • 它只出现在新的 Android Studio 3.4 中。关注这里的问题issuetracker.google.com/issues/131403371
        • @kdblue 你是对的。在 Android Studio v3.4 中,显示 app:layout_behavior="@string/appbar_scrolling_view_behavior" Unresolved class @string/appbar_scrolling_view_behavior 但在您运行应用程序时工作。
        【解决方案9】:

        我有这个问题。我用两个步骤解决了我的问题。 1- 在 android sdk manager 的 SDKTools 中下载最新版本的 AndroidSupportLibrary 包和 AndroidSupportRepository 包(或升级到最新版本)。 2- 将支持依赖项 ind build.gradle 字段更改为

        compile 'com.android.support:appcompat-v7:25.+'
        compile 'com.android.support:support-v4:25.+'
        compile 'com.android.support:recyclerview-v7:25.+'
        compile 'com.android.support:design:25.+'
        

        【讨论】:

          【解决方案10】:

          添加编译com.android.support:design:23.0.1 进入您的 build.gradle 依赖项。

          【讨论】:

            【解决方案11】:

            AgentKnopf Answer “确保将正确的依赖项添加到模块的 build.gradle 文件中”,然后我会添加,您还要确保模块与您当前的版本相同,如下所示: compile 'com.android.support:design:25.3.1.0 如果你没有使用 compile 'com.android.support:design**:23.1.0**'

            【讨论】:

              猜你喜欢
              • 2015-05-03
              • 2017-12-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-08-05
              • 2011-07-12
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多