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

376

Beim Versuch, die neueste Appcompat-v7-Unterstützungsbibliothek in meinem Projekt zu verwenden, wird 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?

loeschg
quelle
1
Ich bekomme dieses Problem in Eclipse. Ich hatte über 100 Fehler, weil meine SDK Build-Tools nicht auf Version 21 aktualisiert wurden. Jetzt sind jedoch andere Fehler aufgetreten. Schauen Sie sich diese an.
RED_
Heute habe ich Extras / Android Support Library (Version 21.0.2) deinstalliert und neu installiert und festgestellt, dass die project.properties immer noch fälschlicherweise auf target = android-19 verweisen, was die Wurzel des Problems ist. Sollte 21 sein, aber es ist eine generierte - nicht von Hand bearbeitbare - Datei. Problemumgehung finden Sie in der akzeptierten Antwort.
JulianSymes
@RED_, Symbol 'android: Theme.Material.Light' in <style name = "AppBaseTheme" parent = "android: Theme.Material.Light"> </ style> in valules-v21 in android studio
Pankaj Nimgade
@PankajNimgade Ich verstehe nicht ... brauchst du Hilfe?
RED_
@RED_, ja, ich brauche dringend Hilfe, auf meinem Computer kann ich anscheinend nichts für Material Theme oder etwas erkennen, das mit Android in values-v21 \ styles beginnt. Bitte helfen Sie mir
Pankaj Nimgade

Antworten:

598

Obwohl die Antwort von loeschg absolut richtig ist, möchte ich sie nur näher erläutern und eine Lösung für alle IDEs (Eclipse, IntellJ und Android Studio) geben, auch wenn sich die Fehler geringfügig unterscheiden.


Voraussetzungen

Stellen Sie sicher, dass Sie die neueste extrassowie die Android 5.0 SDKüber den SDK-Manager heruntergeladen haben .

Bild des SDK-Managers


Android Studio

Öffne die build.gradleDatei deines App-Moduls und ändere deine compileSdkVersionauf 21. Grundsätzlich ist es nicht notwendig, die targetSdkVersionSDK-Version auf 21 zu ändern , aber es wird empfohlen, da du immer auf die neueste Android Build-Version abzielen solltest .
Am Ende sieht Ihre Gradle-Datei folgendermaßen aus:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Stellen Sie sicher, dass Sie Ihr Projekt anschließend synchronisieren.

Android Studio Gradle Sync Erinnerung


Finsternis

Wenn Sie das v7-appcompatin Eclipse verwenden, müssen Sie es als Bibliotheksprojekt verwenden. Es reicht nicht aus, nur die * .jar in Ihren /libsOrdner zu kopieren . Bitte lesen Sie diese Schritt-für-Schritt-Anleitung (klicken Sie) auf developer.android.com, um zu erfahren, wie Sie das Projekt ordnungsgemäß importieren.

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

Fehler 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

Das einzige, was Sie tun müssen, ist die project.propertiesDatei von zu öffnen android-support-v7-appcompatund das Ziel von auf target=android-19zu ändern target=android-21.
Führen Sie anschließend einfach eine aus, Project --> Clean...damit die Änderungen wirksam werden.


IntelliJ IDEA (ohne Gradle)

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

Wenn Sie versuchen, das Projekt zu erstellen, treten Probleme in den res/values-v**Ordnern auf. In Ihrem Nachrichtenfenster wird 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 appcompatModul -> Moduleinstellungen öffnen (F4) -> [Registerkarte "Abhängigkeit"]. Wählen Sie in der Dropdown-Liste die Android API 21-Plattform aus -> Übernehmen

Wählen Sie API 21 Platform

Dann erstellen Sie einfach das Projekt neu (Erstellen -> Projekt neu erstellen) und los geht's.

umkehren
quelle
2
Ich bin auch gleiche prob in Eclipse nach der Änderung mit Blick auf das Ziel von target = android-19 zum Ziel = android-21 auch auf Wert Ordner Geck immer Fehler
Prabhakaran
1
Wenn ich AppCompat in Eclipse auf 5.0 ändere, wird es nicht mehr erstellt und der Ordner .bin ist leer.
Clive Jefferies
1
Genial, wirklich, ich hatte Probleme mit den letzten 2 Tagen, aber dein Trickwechsel Android-19 auf 21 hat funktioniert. Danke Mann
Mukesh Garg
1
Mit Eclipse musste ich das Projektziel für alle Projekte, die die Appcompat-Bibliothek verwendeten, auf 21 aktualisieren, nicht nur für das Appcompat-Projekt selbst.
Bianca Daniciuc
1
Ich ringe derzeit mit den vorherigen Problemen, die in Eclipse / Android erwähnt wurden. Es ist wirklich eine Menge unzuverlässiger undurchdringlicher Blödsinn.
AndyUK
123

Dies liegt wahrscheinlich daran, dass Sie compileSdkVersionin Ihrer build.gradle-Datei nicht 21 festgelegt haben. Sie möchten wahrscheinlich auch Ihre targetSdkVersionauf 21 ändern .

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Dazu müssen Sie zunächst die neuesten SDK-Updates heruntergeladen haben.

Android Studio SDK Manager

Nachdem Sie alle Updates heruntergeladen haben (vergessen Sie nicht, auch die Android Support Library / das 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!

loeschg
quelle
2
Dies ist die richtige Antwort. Für ein Upgrade auf 21 sind die neuen Appcompat-Abhängigkeiten erforderlich, und Sie müssen Version 12 der Spieldienste herunterladen.
sbaar
1
Und stellen Sie sicher, dass JDK 7
Chad Bingham
1
Siehe immer noch korrekt, siehe die Lösung von @ reVerse. Es ist gründlicher :)
Loeschg
habe weder eine der IDEs noch Gradle verwendet ... ist es ähnlich, wenn ich Ant und Notepad verwende?
Valen
22

`Befolgen Sie die folgenden Schritte:

Es funktioniert für mich. Um dieses Problem zu beheben,

1.Rechtsklicken Sie auf die Bibliothek appcompat_v7 und wählen Sie Eigenschaften

2. Klicken Sie jetzt auf Android Option, und legen Sie den Projekterstellungspfad als Android 5.0 (API-Stufe 21) fest. Übernehmen Sie Änderungen.

3. Gehen Sie jetzt zur Datei project.properties unter der Bibliothek appcompat_v7.

4.Stellen Sie das Projektziel wie folgt ein: target = android-21

5.Nun Clean + Build appcompat_v7 Bibliothek und Ihre Projekte`

madhu527
quelle
1
Ich habe deinen Weg benutzt und das Android-21-Ziel in Projekt und Bibliothek festgelegt und dann beide bereinigt und fertig. Danke.
Md Mohsin
1
Wo finde ich die Bibliothek appcompat_v7?
SleepNot
2
Sie finden appcompat_v7 lib in: adt-bundle-windows-x86_64 -> sdk -> \ extras \ -> android \ -> support -> v7
madhu527
Diese Antwort in Kombination mit der obigen Antwort von loeschg hat dieses Problem in Eclipse behoben.
Michael Todd
12

Wenn Sie API 21 nicht als Ziel-API verwenden möchten und daher das Material-Design 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.

Vandus
quelle
Ich stimme mit Ihnen ein. Schließlich plant nicht jeder, SDK auf 21 zu zielen.
Peacepassion
10

Ich habe dieses Problem mit Play-Services festgestellt: 5.0.89. Upgrade auf 6.1.11 gelöstes Problem.

Pepyakin
quelle
8

In Android Studio habe ich versucht, das compileSdkVersionund targetSdkVersionauf einzustellen 19.

Meine Lösung bestand darin, unten zu ersetzen build.gradle , von dieser:

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.+'
}
Gianfranco P.
quelle
Ich habe eine neueste Version von AppCompact verwendet, aber jetzt möchte ich auf eine frühere Version umsteigen, aber ich erhalte diesen Fehler im Explosed-Arr-Ordner
Antwan
3

Ich hatte meinem Arbeitsbereich ein weiteres Projekt hinzugefügt und versuchte, 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 aus

Das JAR wurde in den Ordner " Android Dependencies" verschoben und dieser Fehler wurde behoben.

Live-Liebe
quelle
Ich habe deine Sequenz ausgeführt. Hatte dann ein «Jar Mismatch! Korrigieren Sie Ihre Abhängigkeiten »in der Android-Konsole, da Jars in libs / und Jars in abhängigen Appcompat- und Google Play Services-Bibliotheksprojekten nicht übereinstimmten (SHA-1 und JAR-Dateilänge nicht übereinstimmten). Ich kämpfe weiter und halte dies für einen Erfolg.
Eugene Gr. Philippov
2

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

Es sollte Ihre Probleme lösen

Brendon Schlitten
quelle
2
Das Bereinigen Ihres Projekts funktioniert in diesem Fall nicht, insbesondere wenn Sie gerade ein neues Android SDK, eine Appcompat-Bibliothek usw. heruntergeladen haben, da sich Fehler nicht auf magische Weise selbst bereinigen, ohne die fehlenden Links zu anderen Android-Bibliotheken und / oder -Ressourcen zu finden. Die Antwort von ReVerse ist richtig und am gründlichsten für diejenigen, die nicht wissen, wie sie Probleme mit dem neuesten Download der Android API Level 21 selbst lösen können.
ChuongPham
2

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

classpath 'com.android.tools.build:gradle:0.13.+'
avianey
quelle
0.14.0 wurde tatsächlich vor nicht allzu langer Zeit veröffentlicht
loeschg
Ja, ich habe immer noch 0.12 verwendet ... vielleicht kann es jemand anderem helfen, auf
0.13
2

Nachdem ich in Eclipse ein zweites Projekt im Arbeitsbereich erstellt hatte, hatte ich dieses Problem. Ich glaube, das liegt daran, dass ich es mit einer anderen SDK-Version erstellt habe und diese die android-support-v7-appcompat-Bibliothek überschrieben hat.

Ich habe versucht, alles aufzuräumen, aber ohne Erfolg. Letztendlich hat der obige Vorschlag, project.properties zu bearbeiten und target = android-21 zu ändern und mein Projekt auf Android 5.0 zu setzen, das Problem behoben.

Formica
quelle
2

Was ich empfehle ist: (Dies funktioniert bei mir nach vielen Tagen mit Fehlern)

- Stellen Sie sicher, dass Sie Folgendes heruntergeladen haben:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

- Laden Sie das ADT erneut herunter

- Erstellen Sie eine Sicherheitskopie Ihres Projekts.

- Sie müssen das ADT, den Arbeitsbereich und das Projekt, das wir importieren möchten, auf derselben Festplatte haben (z. B. C: /).

  1. Löschen Sie nun die App-Kompatibilität und Ihr Projekt.

  2. In Eclipse: Datei> Importieren> Vorhandenes Android-Projekt> Weiter> Durchsuchen (Der Ordner, in dem Sie Ihr ADT 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> Erstellungspfad> 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> Reinigen

  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 android-support-v7-appcompat> Eigenschaften> Android> und wählen Sie die neueste API aus, die angezeigt wird> 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> Reinigen

juldeh
quelle
2

Ich habe den gleichen Fehler erhalten, als ich die Compile SDK-Version von API: 21 in API: 16 geändert habe. Das Problem war, Appcompat- Version. Wenn Sie eine ältere Version der 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 .

Also ersetze ich Abhängigkeiten in build.gradle wie folgt:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}

Stellen Sie sicher, dass Ihr SDK ältere Versionen von Appcompat-Versionen enthält Geben Sie hier die Bildbeschreibung ein

mili
quelle
2

Ich war mit allem auf dem neuesten Stand und bekam immer noch diesen Fehler, nicht sicher warum, aber ich denke, das Bild wurde auf seltsame Weise beschädigt und nachdem ich das Bild ersetzt hatte, wurde ich den Fehler los. Könnte es wert sein, es mit einem anderen Bild zu versuchen :)

DoruChidean
quelle
1

Mein Problem war, dass ich andere Bibliotheken hatte, auf die mein Projekt verwies, und diese Bibliotheken hatten eine andere Version von appcompat, auf die 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) Die daraus resultierenden Probleme wurden behoben, normalerweise ein Fehler in menu.xml

3) Zurück zum Hauptprojekt und Appcompat-Bibliothek hinzufügen, bereinigen und alles funktioniert!

Tricknologie
quelle