没有为包中的属性“layout_behavior”找到资源标识符

时间:2015-09-28 22:20:49

标签: java android xml android-studio tabs

我的应用程序运行正常,直到我尝试向其添加库。添加库后,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。
  • 恢复到以前版本的代码

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

13 个答案:

答案 0 :(得分:121)

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

由于您未使用Material Design支持库中的CoordinatorLayout,因此您应该能够安全地删除app:layout_behavior属性。它可能被削减了&amp;从其他代码粘贴。

注意:如果您实际使用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

答案 1 :(得分:33)

万一其他人来自Google并犯了同样的错误,它是layout_behaviOr,而不是layout_behavioUr

答案 2 :(得分:18)

注意:版本目前已更改,因此请将最新版本替换为以下版本。

如果您不想使用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'

答案 3 :(得分:8)

对于那些使用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"

答案 4 :(得分:5)

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

答案 5 :(得分:4)

对于使用androidX的用户

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

您将需要包括这种

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

答案 6 :(得分:3)

我正在使用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"未解决的类@string/appbar_scrolling_view_behavior,但在您运行应用程序时有效。

答案 7 :(得分:1)

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

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.+'

答案 8 :(得分:1)

如果您尚未添加android材质,但首先在build.gradle文件的依赖项中添加此行

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

然后使用此属性

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

现在google要求目标高于26,所以您不能使用

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

就我而言,其他人来自Google并犯了与我相同的错误,那就是

  

layout_behaviOr

不是

  

layout_behavior

哈哈:D

答案 12 :(得分:-3)

compile&#39; com.android.support:design:23.0.1&#39;

这个解决方案对我来说