web-dev-qa-db-fra.com

Aucun identifiant de ressource trouvé pour l'attribut 'layout_behavior' dans le package

Mon application a bien fonctionné jusqu'à ce que j'essaie d'y ajouter une bibliothèque. Après avoir ajouté la bibliothèque, Android Studio me donne l'erreur suivante:

Erreur: (26) Aucun identificateur de ressource trouvé pour l'attribut 'layout_behavior' dans le package 'inf ..'

Ceci est mon fichier 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')
}

C'est le XML qui provoque l'erreur:

 <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"/>

J'ai essayé ce qui suit:

  • Supprimé la bibliothèque
  • Réinitialiser Android Studio et mon ordinateur
  • Retour à la version précédente de mon code de git.

Cependant, l'erreur persiste. Comment résoudre ça?

45
user3421416

Cette ressource de chaîne est définie dans la bibliothèque de support de Material Design.

Puisque vous n'utilisez pas le CoordinatorLayout de la bibliothèque de support de Material Design, vous devriez pouvoir supprimer le app:layout_behavior attribut. C'était probablement copier/coller à partir d'un autre code.

REMARQUE: Si vous utilisez réellement CoordinatorLayout et souhaitez que les comportements de défilement coopératif fonctionnent, vous devez ajouter la dépendance de la dernière version de la bibliothèque Material Design Support dans votre fichier de génération Gradle:

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

UPDATE: Notez qu'avec les dernières versions de Gradle, la configuration compile est déconseillée au profit de configurations implementation et api afin que votre dépendance puisse ressembler à ceci:

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

Ceci n'est qu'un exemple. les numéros de version peuvent être obsolètes lorsque vous lisez ceci, assurez-vous donc que votre version correspond à la version de la bibliothèque de support que vous souhaitez utiliser.

Pour plus d'informations: Quelle est la différence entre une implémentation et une compilation graduelle

123
kris larson

Juste au cas où quelqu'un d'autre viendrait de Google et ferait la même erreur que moi, c'est layout_behaviOr, ne pas layout_behavioUr.

34
Julien

Note: Les versions ont changé, remplacez les versions ci-dessous par les plus récentes.

La réponse acceptée supprime l'erreur dans le cas où layout_behavior n'est pas nécessaire, mais si vous voulez réellement utiliser:

app:layout_behavior="@string/appbar_scrolling_view_behavior"

Assurez-vous d’ajouter la dépendance appropriée au fichier build.gradle de votre module:

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....
}

C'est à dire. ajoutez cette ligne à vos dépendances:

compile 'com.Android.support:design:23.1.0'
18
AgentKnopf

Pour ceux qui utilisent AndroidX et ne veulent pas ajouter l'ancienne bibliothèque:

com.Android.support:design:28.0.0

vous pouvez ajouter à la place:

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

et l'utiliser comme ça:

app:layout_behavior="com.google.Android.material.appbar.AppBarLayout$ScrollingViewBehavior"
12
Robert Pal

Remplacez "app: layout_behavior =" @ string/appbar_scrolling_view_behavior "par app: layout_behavior =" Android.support.design.widget.AppBarLayout $ ScrollingViewBehavior "

5
Dilip

pour ceux qui utilisent androidX

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

vous devrez inclure ceci

implementation 'com.google.Android.material:material:1.1.0-alpha02' 
5
Angel Koh

J'utilise Androidx, alors j'ai implémenté implementation 'com.google.Android.material:material:1.1.0-alpha05'

mais sa me donne toujours l'erreur Unresolved class @string/appbar_scrolling_view_behavior

donc j'ai juste trouvé Invalidate caches/Restart

La méthode la plus rapide consiste à Fichier → Invalider les caches/Redémarrer ... → Il suffit de redémarrer.

J'espère que cela vous aidera.

Remarque: Dans Android Studio v3.4 montrant app:layout_behavior="@string/appbar_scrolling_view_behavior" Classe non résolue @string/appbar_scrolling_view_behavior mais travaillez lorsque vous exécutez votre application.

3
kdblue

si vous n'avez pas ajouté de matériel Android, ajoutez d'abord cette ligne dans vos dépendances dans le fichier build.gradle

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

puis utilisez plutôt cet attribut

app:layout_behavior="com.google.Android.material.appbar.AppBarLayout$ScrollingViewBehavior"
1
Mr.Hosseini

J'ai ce problème. et j'ai résolu mon problème avec les étapes de remorquage. 1- Télécharger la dernière version du paquet AndroidSupportLibrary et du paquet AndroidSupportRepository (ou les installer à la version la plus récente) dans SDKTools of Android sdk manager. 2- Modifier les dépendances de la prise en charge de la construction.

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.+'
1
Bijan Mohammadpoor

Ajouter compiler com.Android.support:design:23.0.1 Dans votre build.gradle dépendances.

0
user3648873

Réponse de AgentKnopf "Assurez-vous d'ajouter la dépendance appropriée au fichier build.gradle de votre module", puis ajoutez-le, assurez-vous également que le module est identique à votre version actuelle, comme ceci: compiler ' com.Android.support:design:25.3.1.0 si vous n'utilisez pas la compilation 'com.Android.support:design**:23.1.0* * '

0
Joyce obi