web-dev-qa-db-de.com

appcompat-v7: 21.0.0 ': Es wurde keine Ressource gefunden, die dem angegebenen Namen entspricht: attr' Android: actionModeShareDrawable '

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?

373
loeschg

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.


Voraussetzungen

Stellen Sie sicher, dass Sie das neueste extras sowie den Android 5.0 SDK über den SDK-Manager heruntergeladen haben.

Picture of the SDK Manager


Android Studio

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

Android Studio Gradle Sync reminder


Finsternis

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:

Errors in Eclipse

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

Lösung

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.


IntelliJ IDEA (ohne Gradle)

Ä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

Lösung

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

Select API 21 Platform

Dann erstellen Sie einfach das Projekt neu (Build -> Rebuild Project) und Sie können loslegen.

596
reVerse

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.

Android Studio SDK Manager

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!

123
loeschg

`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`

22
madhu sudhan

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.

12
vandus

Ich habe dieses Problem mit Play-Services festgestellt: 5.0.89. Upgrade auf 6.1.11 behoben.

10
pepyakin

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.+'
}
8
Gianfranco P.

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:

  • Klicken Sie mit der rechten Maustaste auf das Projekt
  • Wählen Sie Eigenschaften
  • Klicken Sie im linken Menü auf Android
  • Klicken Sie auf Hinzufügen
  • Bitte wählen Sie ein Bibliotheksprojekt

Das Glas ging in den Ordner Android Dependencies und dieser Fehler wurde behoben.

3
live-love

Ein Upgrade auf das neueste Gradle-Plugin löst mein Problem:

classpath 'com.Android.tools.build:gradle:0.13.+'
2
avianey

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.

2
formica

Stellen Sie sicher, dass Sie Ihr Projekt in Android Studio (oder Eclipse) bereinigen.

Es sollte Ihre Probleme lösen

2
Brendon Sled

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 enter image description here

2
mili

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: /).

  1. Löschen Sie nun den App-Compat und Ihr Projekt.

  2. In Eclipse: Datei> Importieren> Android Vorhandenes Projekt> Weiter> Durchsuchen (Ordner, in dem Sie ADT installiert haben)/sdk/extras/Android/v7/appcompat> Importieren> Fertig stellen

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

  4. Klicken Sie mit der rechten Maustaste auf libs/folder> Buil Path> Configure Build Path und überprüfen Sie diese beiden JARS> OK

  5. In der oberen Eclipse-Leiste> Projekt> Bereinigen

  6. Importieren Sie Ihr Projekt> Datei> Importieren> Durchsuchen Sie Ihr Projekt> Fertig stellen

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

  8. Klicken Sie mit der rechten Maustaste auf die Projektdatei> Eigenschaften> Android> Hinzufügen> Android-support-v7-appcompat

  9. In der oberen Eclipse-Leiste> Projekt> Bereinigen

2
juldeh

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 :)

2
DoruChidean

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!

1
tricknology