Ressourcenfehler in Android Studio nach dem Update: Keine Ressource gefunden

101

Nach einem kürzlich durchgeführten Update auf Android Studio haben wir Probleme, ein Projekt zum Kompilieren zu bringen, das zuvor funktioniert hat. Zuerst wurde der folgende Fehler angezeigt:

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

Ich habe das SDK-Build-Ziel in unserer Gradle-Datei auf 23 aktualisiert, wodurch dieses spezielle Problem behoben wurde, aber es hat uns eine Menge Apache.http-Paketfehler hinterlassen (insbesondere sind eine Menge Apache-Pakete, die wir für http-Inhalte verwenden, jetzt weg in sdk 23).

Ich möchte den seltsamen Ressourcenfehler beheben, ohne jedoch auf SDK 23 zu aktualisieren. Ich habe momentan nicht die Zeit, unsere Toolbibliothek neu zu schreiben, um die neu implementierte Implementierung von Apache-http-Komponenten zu verwenden. Hat jemand irgendwelche Ideen?

James Dobson
quelle
Erhalten Sie den Fehler nicht in der Datei appcompat_v7 res / values-v23 / styles.xml selbst (und nicht in Ihrem Projekt)?
Trost
1
Nicht sicher, ob ich Ihre Frage verstehe? Wir haben das Problem in einer generierten Datei erhalten, wie durch den Dateipfad in dem oben angegebenen Fehler angegeben.
James Dobson
Wenn der Fehler in den generierten Dateien auftritt, müssen Sie die Build-Tools in Gradle aktualisieren, um sie an die Bibliotheksversion anzupassen. dh buildToolsVersion "23.0.1"
BK Batchelor

Antworten:

78

Ändern Sie die Appcompat-Version in Ihrer build.gradle-Datei zurück auf 22.2.1 (oder was auch immer Sie zuvor verwendet haben).

Tunga
quelle
5
Danke, das war die Lösung. Ich habe die Anweisungen hier befolgt : code.google.com/p/android/issues/detail?id=183122#makechanges speziell die von scott angebotene Lösung. Ich musste die 23.0.0 in meinem SDK-Ordner löschen, die Version 23 SDK im SDK-Manager löschen und dann eine Bereinigung und Wiederherstellung durchführen
James Dobson
4
James, danke für die Lösung. Ich bin jedoch nur verdammt erstaunt über diese PITA-Situation - weil ich nie appcompat-v7: 22.2.1 installiert hatte !!
Jemand irgendwo
Gibt es eine Möglichkeit, dies in Eclipse zu tun?
Trost
10
@ Solace Eclipse ist nutzlos
Back Packer
6
@BackPacker Nein. Android Studio ist das Problem. Ich habe einen guten Computer und Android Studio braucht ewig, um eine einfache Hallo-Welt-App zu kompilieren.
TheRealChx101
197

Sie müssen compileSdkVersion auf 23 setzen.

Da API 23 Android die veralteten Apache-HTTP-Pakete entfernt hat, müssen Sie, wenn Sie sie für Serveranforderungen verwenden, useLibrary 'org.apache.http.legacy'wie in diesem Link angegeben zu build.gradle hinzufügen :

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}
Roberto B.
quelle
1
Dies wird funktionieren, aber Sie sollten sicherstellen, dass Sie die neue SDK-Version installieren. API 23 (Android 6.0-Plattform). Auf diese Weise können Sie neuere Geräte unterstützen. Wenn Sie die "Appcompat-Version" in eine neuere Version ändern, ist daher die neuere SDK-Version erforderlich.
JamesDeHart
4
Diese Antwort ist viel besser als zurück zu 22.2.1
Jörn Buitink
4
Es ist sicherlich eine ideale Antwort und offensichtlich die richtige Vorgehensweise für die meisten Menschen. Es beantwortet jedoch nicht meine Frage, das Problem zu lösen, ohne die SDK-Version zu aktualisieren. Dadurch wird eine Bibliothek zerstört, von der wir abhängig sind, die jedoch zu diesem Zeitpunkt keine Zeit zum Aktualisieren hatte. Wir haben seitdem die Bibliothek aktualisiert, um die neuen Funktionen zu nutzen, und können jetzt sicher auf SDK 23 aktualisieren.
James Dobson
@ RobertoB. Danke, das sind gute Infos. Wir haben unsere Codebasis bereits aktualisiert, um die neuen Apache-Bibliotheken zu verwenden, aber hoffentlich hilft sie anderen!
James Dobson
Wie hängt dies mit den Fehlermeldungen zusammen, die das OP meldet? Ich denke, compileSdkVersion ist eine gültige Problemumgehung, aber die Verwendung der alten Apache-Bibliothek ist nur eine indirekte Anforderung.
Mdelolmo
21

In Ihren Projekten build.gradle Datei ... schreiben Sie wie folgt .. Ich habe diesen Fehler behoben, indem ich die Appcompat-Version von v7.23.0.0 auf v7.22.2.1 geändert habe.

dependencies

{

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

}}

Der folgende Screenshot dient dem besseren Verständnis.

urnish
quelle
1
Nein NEIN Nein .... das habe ich nicht erwartet! ABER DAS hat funktioniert !! Was bringt es dann, es auf 23.0.1 zu aktualisieren?
Sud007
Dieser bekommt meine +1: Es ist nicht immer angebracht, einfach auf die neueste Version von allem zu aktualisieren, was dir sofort jemand sagt. Dieser beantwortet die ursprüngliche Frage und behebt das Problem für mich.
Mark Smith
10

Achtung, falsche Antwort kommt! Aber jeder ohne Apache-Bibliotheken oder so könnte finden

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


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

}

hilfreich, es hat den Trick für mich getan.

diesistdername
quelle
Warum hat es so Probleme mit Apache-Bibliotheken?
NinjaCoder
4

Sie sollten Ihre compiledsdkversion und targetversion in der für die App spezifischen Build-Gradle-Datei auf 23 ändern. Stellen Sie sicher, dass Sie zuvor sdk 23, Version 6.0, installiert haben. Weitere Hilfe finden Sie in diesem Video. https://www.youtube.com/watch?v=pw4jKsOU7go

Dinesh Sunny
quelle
2

Wenn Sie auch nach dem Herunterladen des neuesten SDK und Android Studio Fehler erhalten, bin ich ein Neuling: Was ich getan habe, war 1. Laden Sie das aktuelle SDK herunter (ich war) 2. Öffnen Sie die Datei-Projekt-Struktur (Strg + Alt + Umschalt + S) 3. Wählen Sie in den Modulen App 4.In der Registerkarte Eigenschaften. Ändern Sie die Kompilierungs-SDK-Version in API 23 Android 6.0 Marshmallow (aktuell)

Stellen Sie sicher, dass die Kompilierungsadk-Version und die Buildtools dieselbe Version haben (23).

Hoffe, es hilft jemandem, damit er nicht so leidet wie ich in diesen paar Tagen.

xsushil
quelle
2

Versuchen Sie, alle Versionen abzugleichen:

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

Es ist Arbeit für mich.

Ganesh Jadhav
quelle
1

compileSDK sollte mit der appCompat-Version übereinstimmen. TargetSDK kann immer noch 22 sein (z. B. falls Sie noch nicht auf das neue Berechtigungsmodell aktualisiert haben)

cwiesner
quelle
1

Wenn Sie haben :

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

Fehler, müssen Sie ändern appcompat, buildtools, sdkzu 23 , aber wenn Sie dies nicht tun , wie es zu ändern und muss in 22 dies tun:

  • kompilieren 23
  • Ziel 22
Adnan Abdollah Zaki
quelle
0

Es funktioniert nur, wenn die build.grade dahingehend geändert wurde:

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'
}
Sanderson
quelle
0

Mir ist aufgefallen, dass ich SDK 23 nicht installiert habe. Also habe ich es zuerst installiert und dann mein Projekt neu erstellt. Und es hat gut funktioniert. Auch compilesdkVersion sollte 23 sein

Arun Alo Chakraborty
quelle
0

Zuerst,

Versuchen Sie, Ihren SDK-Ordner zu überprüfen. Für mich war es mydocuments / appdata / sdk .... usw. Im Grunde wurde mein SDK-Ordner nicht vollständig heruntergeladen, was hauptsächlich die Ursache für dieses Problem ist. Sie müssen entweder ein anderes vollständig heruntergeladenes Android-SDK verwenden (einschließlich Tools-Abschnitt und Extras, die Sie wirklich benötigen) oder das Eclipse-SDK verwenden, das Sie möglicherweise zuvor für Ihre Eclipse-Android-Entwicklungen heruntergeladen haben. Dann bauen-> bereinigen Sie Ihr Projekt noch einmal.

Es lohnt sich zu versuchen.

Adnan Bal
quelle
0

Aktualisieren Sie auf API 23 (Android 6.0) oder ändern Sie Appcompat-v7 in Gradle auf die Version 22.2.2. Dies funktioniert für mich beim Hinzufügen von Google Play Service

Löwe
quelle
0

Methode 1: Es wird angezeigt. Sie haben Api 23 nicht installiert. Installieren Sie daher bitte API 23.

Methode 2:

Ändern Sie die Appcompat-Version in Ihrer build.gradle-Datei zurück auf 22.0.1 (oder weniger).


quelle