386 Stimmen

Appcompat-v7:21.0.0': Keine Ressource gefunden, die mit dem angegebenen Namen übereinstimmt: Attribut 'android:actionModeShareDrawable'

Beim Versuch, die neueste Appcompat-v7-Support-Bibliothek in meinem Projekt zu verwenden, erhalte ich den folgenden Fehler:

/Benutzer/greg/dev/mobile/android_project/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Fehler:(36, 21) Keine Ressource gefunden, die mit dem angegebenen Namen übereinstimmt: Attribut 'android:actionModeShareDrawable'.
Fehler:(36, 21) Keine Ressource gefunden, die mit dem angegebenen Namen übereinstimmt: Attribut 'android:actionModeShareDrawable'.
Fehler:(36, 21) Keine Ressource gefunden, die mit dem angegebenen Namen übereinstimmt: Attribut 'android:actionModeShareDrawable'.
Fehler:(36, 21) Keine Ressource gefunden, die mit dem angegebenen Namen übereinstimmt: Attribut 'android:actionModeShareDrawable'.

Wie kann ich das beheben?

598voto

reVerse Punkte 34905

Während die Antwort von loeschg absolut korrekt ist, möchte ich darauf eingehen und eine Lösung für alle IDEs (Eclipse, IntelliJ und Android Studio) geben, auch wenn sich die Fehler geringfügig unterscheiden.


Voraussetzungen

Vergewissern Sie sich, dass Sie die neuesten extras sowie das Android 5.0 SDK über den SDK-Manager heruntergeladen haben.

Bild des SDK Managers


Android Studio

Öffnen Sie die Datei build.gradle oder build.gradle.kts Ihres App-Moduls und ändern Sie Ihre compileSdkVersion auf 21. Es ist im Grunde nicht notwendig, die targetSdkVersion SDK-Version auf 21 zu ändern, aber es wird empfohlen, da Sie immer auf die neueste Android Build-Version zielen sollten.
Am Ende wird Ihre Gradle-Datei wie folgt aussehen:

android {
    compileSdkVersion(21)
    // ...

    defaultConfig {
        // ...
        targetSdkVersion(21)
    }
}

Vergessen Sie nicht, Ihr Projekt danach zu synchronisieren.

Erinnerung zur Android Studio Gradle Synchronisierung


Eclipse

Wenn Sie in Eclipse das v7-appcompat verwenden, müssen Sie es als Bibliotheksprojekt verwenden. Es reicht nicht aus, die *.jar-Datei einfach in Ihren /libs-Ordner zu kopieren. Bitte lesen Sie dieses (Klicken) schrittweise Tutorial auf developer.android.com, um zu erfahren, wie Sie das Projekt ordnungsgemäß importieren.

Sobald das Projekt importiert ist, werden Sie feststellen, dass einige Ordner im /res-Ordner aufgrund von Fehlern wie den folgenden rot unterstrichen sind:

Fehler in Eclipse

Fehler: Fehler beim Abrufen des übergeordneten Elements für Element: Keine Ressource gefunden, die mit dem angegebenen Namen 'android:TextAppearance.Material' übereinstimmt.
Fehler: Fehler beim Abrufen des übergeordneten Elements für Element: Keine Ressource gefunden, die mit dem angegebenen Namen 'android:Widget.Material.*' übereinstimmt.
Fehler: Keine Ressource gefunden, die mit dem angegebenen Namen übereinstimmt: Attribut 'android:actionModeShareDrawable'.

Lösung

Das Einzige, was Sie tun müssen, ist die Datei project.properties des android-support-v7-appcompat zu öffnen und das Ziel von target=android-19 auf target=android-21 zu ändern.
Führen Sie dann einfach ein Project --> Clean... durch, damit die Änderungen wirksam werden.


IntelliJ IDEA (keine Verwendung von Gradle)

Ähnlich wie in Eclipse reicht es nicht aus, nur die android-support-v7-appcompat.jar zu verwenden; Sie müssen das appcompat als Modul importieren. Lesen Sie mehr darüber in diesem StackO-Post (klicken).
(Hinweis: Wenn Sie nur die .jar verwenden, erhalten Sie zur Laufzeit NoClassDefFoundErrors)

Wenn Sie versuchen, das Projekt zu erstellen, werden Sie Probleme in den res/values-v**-Ordnern haben. Ihr Meldungsfenster wird etwas Ähnliches wie folgt anzeigen:

Fehler: android-apt-compiler: [appcompat]  Ressource gefunden, die mit dem angegebenen Namen: Attribut 'android:colorPrimary' übereinstimmt.
Fehler:(75, -1) android-apt-compiler: [appcompat] C:\[Ihr Pfad]\sdk\extras\android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Fehler beim Abrufen des übergeordneten Elements für Element: Keine Ressource gefunden, die mit dem angegebenen Namen 'android:Widget.Material.ActionButton'.
// und so weiter

Lösung

Klicken Sie mit der rechten Maustaste auf das appcompat-Modul --> Öffnen Sie die Moduleinstellungen (F4) --> [Abhängigkeits-Tab] Wählen Sie Android API 21-Plattform aus dem Dropdown-Menü aus --> Übernehmen

API 21-Plattform auswählen

Dann bauen Sie das Projekt einfach neu auf (Build --> Projekt neu aufbauen) und Sie sind bereit zu gehen.

124voto

loeschg Punkte 29202

Dies liegt wahrscheinlich daran, dass Sie Ihren compileSdkVersion in Ihrer build.gradle-Datei nicht auf 21 eingestellt haben. Sie möchten auch wahrscheinlich Ihre targetSdkVersion auf 21 ändern.

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Dies setzt voraus, dass Sie die neuesten SDK-Updates heruntergeladen haben.

Android Studio SDK Manager

Nachdem Sie alle Updates heruntergeladen haben (vergessen Sie nicht, auch die Android Support Library/Repository zu aktualisieren!) und Ihre compileSdkVersion aktualisiert haben, synchronisieren Sie Ihr Gradle-Projekt erneut.

Bearbeitung: Für Eclipse- oder allgemeine IntelliJ-Benutzer

Siehe Antwort von reVerse. Er hat einen sehr ausführlichen Leitfaden!

22voto

madhu527 Punkte 4534

So geht's:

Bei mir funktioniert es. Um dieses Problem zu lösen,

1. Klicken Sie mit der rechten Maustaste auf die appcompat_v7-Bibliothek und wählen Sie Eigenschaften aus

2. Klicken Sie jetzt auf Android-Option, Legen Sie das Projektaufbaumuster als Android 5.0 (API-Level 21) fest Änderungen anwenden.

3. Gehen Sie jetzt zur Projektdatei project.properties unter der appcompat_v7-Bibliothek,

4. Legen Sie das Projektauswahl als: target=android-21 fest

5. Jetzt appcompat_v7-Bibliothek und Ihre Projekte säubern und neu erstellen

12voto

vandus Punkte 3158

Wenn Sie nicht API 21 als Ziel-API verwenden möchten und daher das Material-Theme nicht verwenden möchten, müssen Sie eine ältere Revision verwenden, die zu API 19 gehört.

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.

9voto

pepyakin Punkte 2177

Ich bin auf dieses Problem mit play-services:5.0.89 gestoßen. Durch ein Upgrade auf 6.1.11 konnte das Problem gelöst werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X