Beim Versuch, die neueste Unterstützungsbibliothek für appcompat-v7 in meinem Projekt zu verwenden, wird die folgende Fehlermeldung angezeigt:
/Users/greg/dev/mobile/Android_project/app/build/intermediates/exploded-aar/com.Android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.
Wie behebe ich das?
Während die Antwort von loeschg absolut richtig ist, möchte ich nur darauf eingehen und eine Lösung für alle IDEs (Eclipse, IntellJ) geben und Android Studio), auch wenn sich die Fehler geringfügig unterscheiden.
Stellen Sie sicher, dass Sie das neueste extras
sowie den Android 5.0 SDK
über den SDK-Manager heruntergeladen haben.
Öffne die build.gradle
-Datei deines App-Moduls und ändere deine compileSdkVersion
auf 21. Grundsätzlich ist es nicht notwendig, die targetSdkVersion
SDK-Version auf 21 zu ändern, aber es wird empfohlen, da du immer - Ziel die neueste Android Build-Version .
Am Ende wird deine gradle-Datei so aussehen:
Android {
compileSdkVersion 21
// ...
defaultConfig {
// ...
targetSdkVersion 21
}
}
Stellen Sie sicher, dass Sie Ihr Projekt anschließend synchronisieren.
Wenn Sie den v7-appcompat
in Eclipse verwenden, müssen Sie ihn als Bibliotheksprojekt verwenden. Es reicht nicht aus, nur die * .jar-Datei in Ihren /libs
-Ordner zu kopieren. Lesen Sie bitte dieses (Klicken) Schritt-für-Schritt-Tutorial zu developer.Android.com , um zu erfahren, wie das Projekt ordnungsgemäß importiert wird.
Sobald das Projekt importiert wird, werden Sie feststellen, dass einige Ordner im Ordner /res
aufgrund von Fehlern wie den folgenden rot unterstrichen sind:
error: Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material'.
error: Error retrieving parent for item: No resource found that matches the given name 'Android:Widget.Material.*'
error: Error: No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.
Sie müssen nur die Datei project.properties
von Android-support-v7-appcompat
öffnen und das Ziel von target=Android-19
in target=Android-21
ändern.
Führen Sie anschließend einfach einen Project --> Clean...
aus, damit die Änderungen wirksam werden.
Ähnlich wie bei Eclipse reicht es nicht aus, nur den Android-support-v7-appcompat.jar
zu verwenden. Sie müssen das appcompat
als Modul importieren. Lesen Sie mehr darüber StackO-Post (click) .
( Hinweis: Wenn Sie nur mit dem .jar
bekommst du NoClassDefFoundErrors
zur Laufzeit )
Wenn Sie versuchen, das Projekt zu erstellen, treten Probleme in den Ordnern res/values-v**
auf. In Ihrem Nachrichtenfenster wird etwa Folgendes angezeigt:
Error:Android-apt-compiler: [appcompat] resource found that matches the given name: attr 'Android:colorPrimary'.
Error:(75, -1) Android-apt-compiler: [appcompat] C:\[Your Path]\sdk\extras\Android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'Android:Widget.Material.ActionButton'.
// and so on
Klicken Sie mit der rechten Maustaste auf das Modul appcompat
-> Moduleinstellungen öffnen (F4) -> [Registerkarte "Abhängigkeit"] . Wählen Sie aus der Dropdown-Liste die API 21-Plattform Android aus. -> Bewerben
Dann erstellen Sie einfach das Projekt neu (Build -> Rebuild Project) und Sie können loslegen.
Dies liegt wahrscheinlich daran, dass Sie in Ihrer build.gradle-Datei compileSdkVersion
nicht auf 21 gesetzt haben. Sie möchten wahrscheinlich auch Ihr targetSdkVersion
in 21 ändern.
Android {
//...
compileSdkVersion 21
defaultConfig {
targetSdkVersion 21
}
//...
}
Dazu müssen Sie zunächst die neuesten SDK-Updates heruntergeladen haben.
Sobald Sie alle Updates heruntergeladen haben (vergessen Sie nicht, auch das Android Support Library/Repository zu aktualisieren!) Und Ihre compileSdkVersion aktualisiert haben, synchronisieren Sie Ihr Gradle-Projekt erneut .
Bearbeiten: Für Eclipse- oder allgemeine IntelliJ-Benutzer
Siehe die Antwort von reVerse. Er hat einen sehr gründlichen Spaziergang durch!
`Befolgen Sie die folgenden Schritte:
es funktioniert für mich. Um dieses Problem zu lösen,
1.Klicken Sie mit der rechten Maustaste auf die Bibliothek appcompat_v7 und wählen Sie Eigenschaften
2.Klicken Sie jetzt auf die Option Android, und legen Sie den Projekterstellungspfad auf Android 5.0 (API-Stufe 21) fest, um die Änderungen zu übernehmen.
3. Gehen Sie jetzt zur Datei project.properties in der Bibliothek appcompat_v7.
4.Stellen Sie das Projektziel wie folgt ein: Ziel = Android-21
5.Nun Clean + Build appcompat_v7 Bibliothek und Ihre Projekte`
Wenn Sie API 21 nicht als Ziel-API verwenden möchten und daher das Material-Theme nicht verwenden möchten, müssen Sie eine ältere Version von API 19> verwenden
compile "com.Android.support:appcompat-v7:19.0.+"
Dies hilft auch bei der Lösung Ihres Problems. Es hängt nur davon ab, was Sie erreichen möchten.
Ich habe dieses Problem mit Play-Services festgestellt: 5.0.89. Upgrade auf 6.1.11 behoben.
In Android Studio habe ich versucht, compileSdkVersion
und targetSdkVersion
auf 19
zu setzen.
Meine Lösung bestand darin, am Ende von build.gradle
, from folgendes zu ersetzen:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:21.0.3'
}
Zur älteren Version der AppCompat-Bibliothek:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:19.+'
}
Ich habe meinem Arbeitsbereich ein anderes Projekt hinzugefügt und habe versucht, eine Aktivität daraus in der Manifestdatei zu referenzieren, und es wurde dieser Fehler angezeigt. Das Problem ist, dass ich die Bibliothek falsch referenziert habe. So habe ich das Problem behoben:
Das Glas ging in den Ordner Android Dependencies und dieser Fehler wurde behoben.
Ein Upgrade auf das neueste Gradle-Plugin löst mein Problem:
classpath 'com.Android.tools.build:gradle:0.13.+'
Nachdem ich in Eclipse ein zweites Projekt im Arbeitsbereich erstellt hatte, trat dieses Problem auf. Ich glaube, das liegt daran, dass ich es mit einer anderen SDK-Version erstellt habe und diese die Android-support-v7-appcompat-Bibliothek überschrieb.
Ich habe versucht, alles aufzuräumen, aber ohne Erfolg. Letztendlich wurde der obige Vorschlag, project.properties zu bearbeiten und target = Android-21 zu ändern und mein Projekt auf Android 5.0 zu setzen, behoben.
Stellen Sie sicher, dass Sie Ihr Projekt in Android Studio (oder Eclipse) bereinigen.
Es sollte Ihre Probleme lösen
Ich habe den gleichen Fehler erhalten, als ich die Compile SDK-Version von API: 21 auf API: 16 geändert habe. Das Problem war appcompat version. Wenn Sie eine ältere Version von Android API verwenden müssen, müssen Sie auch diese AppCompat-Version ändern. In meinem Fall (für API: 16) musste ich appcompat-v7: 19. + verwenden.
So ersetze ich Abhängigkeiten in build.gradle wie folgt,
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:19.+'
}
Und stellen Sie sicher, dass Ihr SDK ältere Versionen von appcompat enthält
Was ich empfehle ist: (Das funktioniert bei mir nach vielen Tagen mit Fehlern)
- Stellen Sie sicher, dass Sie heruntergeladen haben:
- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS
-Laden Sie das ADT erneut
- Erstellen Sie eine Sicherheitskopie Ihres Projekts.
- Sie müssen das ADT, den Arbeitsbereich und das Projekt, das Sie importieren möchten, auf derselben Festplatte haben (z. B. C: /).
Löschen Sie nun den App-Compat und Ihr Projekt.
In Eclipse: Datei> Importieren> Android Vorhandenes Projekt> Weiter> Durchsuchen (Ordner, in dem Sie ADT installiert haben)/sdk/extras/Android/v7/appcompat> Importieren> Fertig stellen
Jetzt im Eclipse-Paket-Explorer: Android-support-v7-appcompat/libs/Make auf den beiden JARS: Klicken Sie mit der rechten Maustaste auf> Pfad erstellen> Zum Erstellungspfad hinzufügen
Klicken Sie mit der rechten Maustaste auf libs/folder> Buil Path> Configure Build Path und überprüfen Sie diese beiden JARS> OK
In der oberen Eclipse-Leiste> Projekt> Bereinigen
Importieren Sie Ihr Projekt> Datei> Importieren> Durchsuchen Sie Ihr Projekt> Fertig stellen
Klicken Sie nun mit der rechten Maustaste auf die Projektdatei und auf Android-support-v7-appcompat> Eigenschaften> Android> und wählen Sie die neueste angezeigte API aus> OK
Klicken Sie mit der rechten Maustaste auf die Projektdatei> Eigenschaften> Android> Hinzufügen> Android-support-v7-appcompat
In der oberen Eclipse-Leiste> Projekt> Bereinigen
Ich war mit allem auf dem Laufenden und bekam immer noch diesen Fehler, nicht sicher warum, aber ich denke, das Bild war auf seltsame Weise beschädigt und nachdem ich das Bild ausgetauscht hatte, wurde ich den Fehler los. Könnte es wert sein, es mit einem anderen Bild zu versuchen :)
Mein Problem war, dass ich andere Bibliotheken hatte, auf die mein Projekt verwies, und dass auf diese Bibliotheken eine andere Version von appcompat verwiesen wurde. Folgendes habe ich getan, um das Problem zu beheben:
(Sie sollten Ihr Projekt sichern, bevor Sie dies tun)
1) Ich habe alle appcompat-Layoutordner gelöscht (z. B .:/res/layout-v11).
2) Behebung der daraus resultierenden Probleme, normalerweise ein Fehler in der Datei menu.xml
3) Zurück zum Hauptprojekt und appcompat Bibliothek hinzufügen, sauber und alles funktioniert!