errore di risorsa in Android Studio dopo l'aggiornamento: nessuna risorsa trovata


101

Dopo un recente aggiornamento ad Android Studio, abbiamo problemi a compilare un progetto che in precedenza funzionava. All'inizio abbiamo ricevuto il seguente errore:

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

Ho aggiornato l'obiettivo di compilazione sdk nel nostro file gradle a 23, il che ha risolto questo problema specifico, ma ci ha lasciato un sacco di errori del pacchetto apache.http (in particolare, un sacco di pacchetti apache che usiamo per cose http ora sono spariti in sdk 23).

Quello che voglio fare è risolvere lo strano errore di risorsa, ma senza aggiornare a sdk 23. Non ho il tempo di riscrivere la nostra libreria di strumenti in questo momento per utilizzare qualsiasi nuova implementazione dei componenti http di Apache sia stata rilasciata. Qualcuno ha qualche idea?


Non ottieni l'errore nella appcompat_v7 res / values-v23 / styles.xml stesso (piuttosto che nel tuo progetto)?
Solace

1
Non sei sicuro di aver capito la tua domanda? Abbiamo riscontrato il problema in un file generato come indicato dal percorso del file nell'errore pubblicato sopra.
James Dobson

Se l'errore si verifica nei file generati, è necessario aggiornare gli strumenti di compilazione, in gradle, in modo che corrispondano alla versione delle librerie. ovvero buildToolsVersion "23.0.1"
BK Batchelor

Risposte:


78

Cambia la versione appcompat nel tuo file build.gradle riportandola alla 22.2.1 (o qualunque cosa stavi usando prima).


5
Grazie, questa è stata la soluzione. Ho seguito le istruzioni qui: code.google.com/p/android/issues/detail?id=183122#makechanges nello specifico, la soluzione offerta da scott. Ho dovuto eliminare 23.0.0 nella mia cartella sdk, eliminare la versione 23 sdk nel gestore SDK e quindi eseguire una pulizia e ricostruzione
James Dobson

4
James, grazie per la soluzione. Tuttavia, sono semplicemente sbalordito da questa situazione PITA, perché non ho mai installato appcompat-v7: 22.2.1 !!
Someone Somewhere

C'è un modo per farlo in Eclipse?
Solace

10
@Solace Eclipse è inutile
Back Packer

6
@BackPacker No. Android Studio è il problema. Ho un buon computer e Android Studio impiega un'eternità per compilare una semplice app Hello World.
TheRealChx101

197

È necessario impostare compileSdkVersion su 23.

Poiché l'API 23 Android ha rimosso i pacchetti Apache Http deprecati, quindi se li usi per le richieste del server, dovrai aggiungerli useLibrary 'org.apache.http.legacy'a build.gradle come indicato in questo link:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}

1
Funzionerà, ma dovrai assicurarti di installare la nuova versione dell'SDK. API 23 (piattaforma Android 6.0). Ciò ti consentirà di supportare i dispositivi più recenti. Questo è il motivo per cui quando si modifica la "versione appcompat" con una versione più recente, sarà necessaria la versione più recente dell'SDK.
JamesDeHart

4
Questa risposta è molto meglio che tornare al 22.2.1
Jörn Buitink

4
È sicuramente una risposta ideale ed è ovviamente la linea di condotta corretta per la maggior parte delle persone, tuttavia, non risponde alla mia domanda che era quella di risolvere il problema senza aggiornare la versione sdk. In questo modo si rompe una libreria da cui dipendiamo ma non abbiamo avuto il tempo di aggiornarla in quel momento. Da allora abbiamo aggiornato la libreria per utilizzare le nuove funzionalità e ora possiamo aggiornare in sicurezza a sdk 23.
James Dobson

@RobertoB. Grazie, sono buone informazioni. Abbiamo già aggiornato la nostra base di codice per utilizzare le nuove librerie apache, ma speriamo che possa aiutare gli altri!
James Dobson

In che modo questo è correlato ai messaggi di errore segnalati dall'OP? Penso che compileSdkVersion sia una valida soluzione alternativa, ma l'utilizzo della libreria apache legacy è solo un requisito indiretto.
mdelolmo

21

nel file build.gradle dei tuoi progetti ... scrivi come sotto .. ho risolto l'errore cambiando la versione appcompat da v7.23.0.0 a v7.22.2.1 ..

dependencies

{

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

}

La schermata di seguito è per una migliore comprensione.


1
No NO No ... non me lo aspettavo! MA QUESTO HA FUNZIONATO !! Che senso ha aggiornarlo alla 23.0.1 allora?
sud007

Questo ottiene il mio +1: non è sempre appropriato aggiornarsi all'ultima versione di tutto immediatamente qualcuno ti dice di farlo. Questo risponde alla domanda originale e risolve il problema per me.
Mark Smith,

10

Attenzione, risposta sbagliata in arrivo! Ma chiunque non abbia le librerie Apache o giù di lì potrebbe trovare

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


dependencies {
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.0.0'    

}

utile, ha fatto il trucco per me.


Perché ha così tanti problemi con le librerie Apache?
NinjaCoder


2

se ricevi errori anche dopo aver scaricato l'SDK più recente e Android Studio, sono un principiante: quello che ho fatto è stato 1. Scarica il recente SDK (ero) 2.Apri la struttura file-progetto (ctrl + alt + shift + S) 3. Nei moduli seleziona l'app 4.Nella scheda proprietà cambia la versione di compilazione sdk in api 23 Android 6.0 marshmallow (più recente)

assicurati di compilare la versione adk e gli strumenti di compilazione siano della stessa versione (23)

Spero che aiuti qualcuno in modo che non soffra come ho fatto io per questi due giorni.


2

Prova ad abbinare tutte le versioni:

compileSdkVersion 23
buildToolsVersion '23.0.0'
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.0.0'

È lavoro per me.


1

compileSDK dovrebbe corrispondere alla versione di appCompat. TargetSDK può ancora essere 22 (ad es. Nel caso in cui non sia stato ancora aggiornato al nuovo modello di autorizzazione)


1

se hai :

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

errore, è necessario modificare il vostro appcompat, buildtools, sdka 23 ma, se non come per cambiarlo e deve essere in Te 22 fare questo:

  • compilare 23
  • bersaglio 22

0

Funziona solo quando build.grade è stato modificato in quello:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "blablabla"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

0

Ho notato che non avevo sdk 23 installato. Quindi l'ho installato prima e poi ho ricostruito il mio progetto. E ha funzionato bene. Anche compilesdkVersion dovrebbe essere 23


0

Prima di tutto,

Prova a controllare la tua cartella SDK, per me, era mydocuments / appdata / sdk .... ecc. Quindi in pratica la mia cartella sdk non è stata completamente scaricata, la fonte di questo problema principalmente. Devi utilizzare un altro SDK Android completamente scaricato (inclusa la sezione Strumenti e gli extra di cui hai veramente bisogno) o utilizzare l'SDK Eclipse che potresti scaricare in precedenza per i tuoi sviluppi Android di Eclipse. Quindi crea-> ripulisci il tuo progetto ancora una volta.

Vale la pena provare.


0

Esegui l'upgrade per utilizzare l'API 23 (Android 6.0) o ripristina la versione appcompat-v7 alla 22.2.2 in Gradle. Questo funziona per me quando si aggiunge il servizio Google Play


0

Metodo 1: viene visualizzato. Non hai installato Api 23. Quindi installa API 23.

Metodo 2:

Cambia la versione appcompat nel tuo file build.gradle riportandola a 22.0.1 (o meno).

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.