web-dev-qa-db-fra.com

Bibliothèque de support de conception - Quelle version utiliser avec SDK v21

J'ai des problèmes pour comprendre le schéma de version des bibliothèques de support et quand utiliser quelle version. Actuellement, j'ai un projet avec compileSdkVersion 21, minSdkVersion 21 et targetSdkVersion 21 et je souhaite utiliser la bibliothèque de support de conception Android Android. Lorsque j'utilise com.Android.support:design:22.2.0 le projet se compile mais j'obtiens un avertissement Gradle:

"This support library should not use a different version (22) than the `compileSdkVersion` (21)". 

Lorsque j'utilise com.Android.support:design:23.0.1 J'ai des erreurs de compilation comme:

"Error:(2) Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Inverse'.

Je pensais pouvoir toujours utiliser la version la plus élevée des bibliothèques de support tant que le compileSdkVersion est inférieur ou égal, mais cela semble faux.

Puis-je utiliser la bibliothèque de support de conception lors de la compilation avec le niveau 21 de l'API?

20
Matthias Preu

La bibliothèque de support doit toujours correspondre au compileSdkVersion même si le targetSdkVersion ou minSdkVersion sont inférieurs. Si vous souhaitez utiliser la bibliothèque de conception, vous devrez définir compileSdkVersion sur au moins 22 et la version de bibliothèque 22.2.0.

La raison en est simple. La version de la bibliothèque reflète la version du sdk Android par rapport à sa création. Si vous essayez d'utiliser une version de niveau supérieur de la bibliothèque de support que la compileSdkVersion, il se peut qu'elle ne le soit pas. rechercher des ressources qui ont été ajoutées dans une version ultérieure.

31
phxhawke

Vous pouvez utiliser l'un d'eux:

//You have to use compileSdkVersion=22
compile 'com.Android.support:design:22.2.0'
compile 'com.Android.support:design:22.2.1'

//You have to use compileSdkVersion=23
compile 'com.Android.support:design:23.3.0'
compile 'com.Android.support:design:23.2.1'
compile 'com.Android.support:design:23.2.0'
compile 'com.Android.support:design:23.1.1'
compile 'com.Android.support:design:23.1.0'
compile 'com.Android.support:design:23.0.1'
compile 'com.Android.support:design:23.0.0'

La bibliothèque de conception a une dépendance avec la bibliothèque appcompat-v7.
Vous ne pouvez pas utiliser la version v23.0.x compilée avec l'API 22 (c'est la raison de "Error:(2) Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Inverse'.

De plus, comme la première version de la bibliothèque de conception est 22, vous ne pouvez pas utiliser compileSdk = 21.

19