wake-up-neo.net

Design Support Library - Welche Version soll mit SDK v21 verwendet werden?

Ich habe Probleme, das Versionsschema der Unterstützungsbibliotheken zu verstehen und wann ich welche Version verwenden soll. Zur Zeit habe ich ein Projekt mit compileSdkVersion 21, minSdkVersion 21 Und targetSdkVersion 21 Und möchte die Android Design Support Library verwenden. Wenn ich com.Android.support:design:22.2.0 Das Projekt wird kompiliert, aber ich erhalte eine Gradle-Warnung:

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

Wenn ich com.Android.support:design:23.0.1 Verwende, erhalte ich einige Kompilierungsfehler wie:

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

Ich dachte, ich kann immer die höchste Version der Unterstützungsbibliotheken verwenden, solange compileSdkVersion niedriger oder gleich ist, aber das scheint falsch.

Kann ich die Design Support Library beim Kompilieren mit API Level 21 verwenden?

20
Matthias Preu

Die Unterstützungsbibliothek sollte immer mit compileSdkVersion übereinstimmen, auch wenn targetSdkVersion oder minSdkVersion niedriger sind. Wenn Sie die Entwurfsbibliothek verwenden möchten, müssen Sie compileSdkVersion auf mindestens 22 und die Bibliotheksversion 22.2.0 einstellen.

Der Grund dafür ist einfach. Die Version der Bibliothek spiegelt die Version des Android= sdk wider, für das sie erstellt wurde. Wenn Sie versuchen, eine höhere Version der Unterstützungsbibliothek als compileSdkVersion zu verwenden, ist dies möglicherweise nicht der Fall Suchen Sie nach Ressourcen, die in einer späteren Version hinzugefügt wurden.

31
phxhawke

Sie können eine der folgenden Optionen verwenden:

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

Die Konstruktionsbibliothek ist abhängig von der appcompat-v7-Bibliothek.
Sie können die mit API 22 kompilierte Version v23.0.x nicht verwenden (dies ist der Grund für "Error:(2) Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Inverse'.

Da die erste Version der Entwurfsbibliothek 22 ist, kann nicht verwendet werden compileSdk = 21.

19