appcompat-v7: 21.0.0 ': Nessuna risorsa trovata che corrisponde al nome dato: attr' android: actionModeShareDrawable '


376

Quando tento di utilizzare l'ultima libreria di supporto appcompat-v7 nel mio progetto, ottengo il seguente errore:

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

Come posso risolvere questo problema?


1
Ricevo questo problema in eclissi. Ho avuto oltre 100 errori perché i miei strumenti di generazione dell'SDK non si sono aggiornati alla versione 21. Ora ho diversi errori, quindi ... vai a esaminare quelli.
RED_

Oggi ho disinstallato e reinstallato Extras / Android Support Library (versione 21.0.2) e ho notato che i suoi project.properties puntano ancora erroneamente a target = android-19, che è la radice del problema. Dovrebbe essere 21, ma è un file generato, non modificabile a mano. Vedi la risposta accettata per la soluzione alternativa.
JulianSymes,

@RED_, Impossibile risolvere il simbolo 'android: Theme.Material.Light' in <style name = "AppBaseTheme" parent = "android: Theme.Material.Light"> </style> in valules-v21 in android studio
Pankaj Nimgade

@PankajNimgade Non capisco ... hai bisogno di aiuto?
RED_

@RED_, sì, ho bisogno di aiuto disperatamente, sul mio computer non riesco a rilevare nulla per Material Theme o qualcosa che inizia con android in valori-v21 \ styles, gentilmente aiutami
Pankaj Nimgade

Risposte:


598

Mentre la risposta di loeschg è assolutamente corretta, voglio solo approfondire e dare una soluzione per tutti gli IDE (Eclipse, IntellJ e Android Studio) anche se gli errori si differenziano leggermente.


Prerequisiti

Assicurati di aver scaricato l'ultimo extrase il Android 5.0 SDKtramite SDK-Manager.

Immagine del gestore SDK


Android Studio

Apri il build.gradlefile del modulo dell'app e modifica il tuo compileSdkVersionin 21. In pratica non è necessario modificare la targetSdkVersionversione dell'SDK in 21, ma è consigliato poiché dovresti sempre scegliere come target l'ultima versione di Android build .
Alla fine il tuo gradle-file sarà simile al seguente:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Assicurati di sincronizzare il tuo progetto in seguito.

Promemoria sincronizzazione studio Android Studio


Eclisse

Quando si utilizza v7-appcompatin Eclipse è necessario utilizzarlo come progetto di libreria. Non è sufficiente copiare * .jar nella tua /libscartella. Per favore leggi questo (clicca) tutorial passo-passo su developer.android.com per sapere come importare correttamente il progetto.

Non appena il progetto viene importato, ti accorgerai che alcune cartelle nella /rescartella sono sottolineate in rosso a causa di errori come i seguenti:

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

Soluzione

L'unica cosa che devi fare è aprire il project.propertiesfile di android-support-v7-appcompate cambiare la destinazione da target=android-19a target=android-21.
Successivamente fai semplicemente in Project --> Clean...modo che le modifiche abbiano effetto.


IntelliJ IDEA (non utilizzando Gradle)

Simile a Eclipse non è sufficiente usare solo il android-support-v7-appcompat.jar; devi importare appcompatcome modulo. Maggiori informazioni su questo StackO-Post (clic) .
( Nota: se stai usando solo il .jarotterraiNoClassDefFoundErrors Runtime )

Quando si tenta di creare il progetto, si incontrano problemi nelle res/values-v**cartelle. La finestra del messaggio dirà qualcosa di simile al seguente:

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

Soluzione

Fare clic con il tasto destro del mouse sul appcompatmodulo -> Apri le impostazioni del modulo (F4) -> [Scheda Dipendenza] Selezionare la piattaforma API 21 Android dal menu a discesa -> Applica

Seleziona la piattaforma API 21

Quindi ricostruisci il progetto (Build -> Rebuild Project) e sei a posto.


2
sto anche affrontando la stessa prob in eclissi dopo aver cambiato il target da target = android-19 a target = android-21 ottenendo anche errori sulla cartella dei valori amico
prabhakaran,

1
Quando cambio AppCompat su 5.0 in eclipse, non viene più compilato e la cartella .bin è vuota.
Clive Jefferies,

1
Fantastico, davvero stavo lottando dagli ultimi 2 giorni, ma il tuo cambio di trucco Android-19 a 21 ha funzionato .. Grazie
amico

1
Utilizzando Eclipse, ho dovuto aggiornare l'obiettivo del progetto a 21 su tutti i progetti che utilizzavano la libreria appcompat, non solo sul progetto appcompat stesso.
Bianca Daniciuc il

1
Attualmente sto lottando con i numeri precedenti menzionati in eclipse / android. È davvero un carico di inaffidabili bollock impenetrabili.
AndyUK,

123

Questo è probabilmente perché non hai impostato il tuo compileSdkVersion21 nel tuo file build.gradle. Probabilmente vuoi anche cambiare il tuo targetSdkVersionin 21.

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Per iniziare, è necessario aver scaricato gli ultimi aggiornamenti dell'SDK.

Gestione SDK per Android Studio

Dopo aver scaricato tutti gli aggiornamenti (non dimenticare di aggiornare anche la libreria / repository di supporto Android!) E aver aggiornato la tua compilazione SDKVersion, risincronizza il tuo progetto Gradle.

Modifica: per utenti Eclipse o IntelliJ generali

Vedi la risposta di reVerse. Ha una passeggiata molto approfondita!


2
Questa è la risposta corretta L'aggiornamento a 21 richiede questo, le nuove dipendenze dell'appcompat ed è necessario scaricare rev 12 dei servizi di gioco.
sbaar,

1
E assicurati di eseguire JDK 7
Chad Bingham,

1
Mentre è ancora corretto, vedere la soluzione di @ reVerse. È più approfondito :)
loeschg

non ho usato né uno degli IDE né Gradle ... è simile quando uso Ant e il Blocco note?
Valen

22

`Seguire i passaggi seguenti:

funziona per me. Per risolvere questo problema,

1.Destra Fare clic sulla libreria appcompat_v7 e selezionare Proprietà

2.Ora, fai clic su Opzione Android, Imposta percorso build progetto su Android 5.0 (livello API 21) Applica modifiche.

3.Ora vai al file project.properties nella libreria appcompat_v7,

4.Impostare il target del progetto come: target = android-21

5.Ora Clean + Build appcompat_v7 library e i tuoi progetti`


1
Ho usato la tua strada e ho impostato il target android-21 nel progetto e nella libreria, quindi ho pulito entrambi e fatto ... grazie.
Md Mohsin,

1
dove posso trovare la libreria appcompat_v7?
SonnoNon

2
puoi trovare la libreria appcompat_v7 in: adt-bundle-windows-x86_64 -> sdk -> \ extras \ -> android \ -> support -> v7
madhu527

Questa risposta in combinazione con la risposta di loeschg sopra ha risolto questo problema in Eclipse.
Michael Todd,

12

Nel caso in cui non si desideri utilizzare l'API 21 come API di destinazione e quindi non si desidera utilizzare il tema del materiale, è necessario utilizzare una revisione precedente appartenente all'API 19>

compile "com.android.support:appcompat-v7:19.0.+"

Questo aiuta anche a risolvere il tuo problema, dipende solo da ciò che vuoi ottenere.


Sono d'accordo con te. Dopotutto, non tutti hanno intenzione di scegliere come target sdk alle 21.
peacepassion,

10

Ho riscontrato questo problema con i servizi di riproduzione: 5.0.89. Aggiornamento al problema risolto 6.1.11.


8

In Android Studio stavo cercando di impostare il compileSdkVersione targetSdkVersionsu19 .

La mia soluzione era quello di sostituire in fondo build.gradle, da questo:

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

Alla versione precedente della libreria appcompat:

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

stavo usando una versione più recente di appcompact ma ora voglio passare alla versione precedente ma sto riscontrando questo errore nella cartella esplosa-arr
Antwan,

3

Avevo aggiunto un altro progetto al mio spazio di lavoro e stavo provando a fare riferimento ad un'attività da esso nel file manifest e stavo ottenendo questo errore. Il problema è che stavo facendo riferimento erroneamente alla libreria. Ecco come ho risolto il problema:

  • Fare clic con il tasto destro sul progetto
  • Seleziona Proprietà
  • Fai clic su Android nel menu a sinistra
  • Clicca su Aggiungi
  • Seleziona un progetto di biblioteca

Il vaso è andato nella cartella Dipendenze Android e questo errore è stato corretto.


Ho eseguito la tua sequenza. Poi ha avuto un «Jar non corrispondente! Correggi le tue dipendenze »nella console Android perché i vasi nelle librerie / e nei progetti di libreria di appcompat e google play dipendenti non corrispondevano (avevano SHA-1 non corrispondente e lunghezza del file jar). Lottando ulteriormente, considero questo un successo.
Eugene Gr. Philippov,

2

Assicurati di pulire il tuo progetto in Android Studio (o Eclipse),

Dovrebbe risolvere i tuoi problemi


2
La pulizia del progetto in questo caso non funziona, specialmente se hai appena scaricato un nuovo SDK Android, una libreria di appcompat, ecc., Poiché gli errori non si puliranno magicamente da soli senza trovare i collegamenti mancanti ad altre librerie e / o risorse Android. La risposta di ReVerse è corretta e più completa per coloro che non sanno come risolvere i problemi con l'ultimo download dell'API Android di livello 21 da soli.
ChuongPham,

2

L'aggiornamento all'ultimo plug-in Gradle risolve il mio problema:

classpath 'com.android.tools.build:gradle:0.13.+'

0.14.0 è stato effettivamente rilasciato non molto tempo fa
loeschg il

sì, stavo ancora usando 0.12 ... forse può aiutare qualcun altro a
passare

2

Dopo aver creato un secondo progetto nell'area di lavoro in eclipse, ho avuto questo problema. Credo che sia perché l'ho creato con una diversa versione dell'SDK e questo ha riscritto la libreria android-support-v7-appcompat.

Ho provato a ripulire tutto ma senza risultati. Alla fine, il suggerimento sopra per modificare project.properties e cambiare target = android-21 e impostare il mio progetto su Android 5.0, risolto il problema.


2

Quello che consiglio è: (Questo mi funziona dopo molti giorni con errori)

-Assicurati di aver scaricato:

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

- Scarica nuovamente l'ADT

-Fai una copia di sicurezza del tuo progetto.

-Devi avere l'ADT, lo spazio di lavoro e il progetto che importeremo nello stesso disco (es. C: /)

  1. Ora elimina l'app compat e il tuo progetto.

  2. In eclipse: File> Importa> Progetto esistente Android> Avanti> Sfoglia (la cartella in cui hai il tuo ADT) / sdk / extra / android / v7 / appcompat> Importa> Fine

  3. Ora in Esplora pacchetti eclipse: android-support-v7-appcompat / libs / Make sui due JARS: tasto destro del mouse> Build Path> Aggiungi a Build Path

  4. Fare clic con il tasto destro su libs / cartella> Buil Path> Configura Build Path e controllare questi due JARS> OK

  5. Nella barra dell'eclissi superiore> Progetto> Pulisci

  6. Importa il tuo progetto> File> Importa> Sfoglia il tuo progetto> Fine

  7. Ora, fai clic destro sul file di progetto e android-support-v7-appcompat> Proprietà> Android> E seleziona l'API più recente che appare> OK

  8. Fare clic con il tasto destro sul file di progetto> Proprietà> Android> Aggiungi> android-support-v7-appcompat

  9. Nella barra dell'eclissi superiore> Progetto> Pulisci


2

Ho avuto lo stesso errore quando ho cambiato la versione di Compilare SDK da API: 21 a API: 16. Il problema era, versione appcompat . Se è necessario utilizzare una versione precedente dell'API Android, è necessario modificare anche questa versione dell'appcompat. Nel mio caso ( per API: 16 ), ho dovuto usare appcompat-v7: 19. + .

Quindi sostituisco le dipendenze in build.gradle come segue,

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

E assicurati di avere versioni precedenti di versioni di appcompat sul tuo SDK inserisci qui la descrizione dell'immagine


2

Ero aggiornato con tutto e ho ancora questo errore, non so perché ma penso che l'immagine sia stata corrotta in modo strano e dopo aver sostituito l'immagine mi sono sbarazzato dell'errore. Potrebbe valere la pena provare con un'immagine diversa :)


1

Il mio problema era che avevo altre librerie a cui faceva riferimento il mio progetto e che quelle biblioteche avevano un'altra versione di appcompat referenziata. Questo è quello che ho fatto per risolvere il problema:

(È necessario eseguire il backup del progetto prima di farlo)

1) Ho eliminato tutte le cartelle di layout di appcompat (es: / res / layout-v11).

2) Risolti i problemi che ne derivavano, di solito un errore in menu.xml

3) Torna al progetto principale e aggiungi la libreria di appcompat, pulita e tutto funziona!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.