Keine Ressource gefunden - Theme.AppCompat.Light.DarkActionBar


145

Ich habe den ActionBar Style Generator verwendet und versuche nun, ihn in meine App zu integrieren.

Fehler: Fehler beim Abrufen des übergeordneten Elements für das Element: Es wurde keine Ressource gefunden, die dem angegebenen Namen '@ style / Theme.AppCompat.Light.DarkActionBar' entspricht.

Ich benutze android-support-v7-appcompat.jar lib im Ordner libs

Mein Ziel ist es, meine App 2.3 oder höher kompatibel zu machen


Hast du das Glas zum libs-Ordner hinzugefügt?
Raghunandan

ja android-support-v7-appcompat.jar
So

Antworten:


96

AppCompatist ein Bibliotheksprojekt. Sie müssen das Bibliotheksprojekt in Ihrem Android-Projekt referenzieren.

Überprüfen Sie das Thema Hinzufügen von Bibliotheken mit Ressourcen .


1
bereits android-support-v7-appcompat.jar in libs Ordner gelegt
So

4
@AbrahimNeil das ist nicht der richtige Weg. Es ist ein Bibliotheksprojekt und muss daher genau wie Google Play Services referenziert werden
Raghunandan

Wenn ich android-support-v7-appcompat.jar importiere, kann ich das Ziel android-16 nicht auflösen. Ist es erforderlich?
So


1
Hinzufügen implementation 'com.android.support:appcompat-v7:28.0.0', unter Abhängigkeiten löste mein Problem.
Hilal

35

Wenn Sie Eclipse verwenden , fügen reference librarySie das wie folgt in Ihr Projekt ein:

  1. Klicken Sie in der Project ExplorerAnsicht mit der rechten Maustaste auf Ihr Projekt .
  2. Klicken Sie auf Properties.
  3. Klicken Sie Androidin das PropertiesFenster.
  4. LibraryKlicken Sie in der Gruppe aufAdd...
    • Siehe das Bild unten.
  5. Wählen Sie die Bibliothek aus. Klicken Sie auf OK .
  6. Klicken Sie OKim Eigenschaftenfenster erneut auf die Schaltfläche.

Die Schaltfläche "Hinzufügen" im Fenster "Projekteigenschaften", Abschnitt "Android", Gruppe "Bibliothek".


4
Woher weißt du, dass Op Eclipse nicht Android Studio verwendet? Der Snap ist für Eclipse.
Raghunandan

@ Raghunandan Entschuldigung vergessen, es zu erwähnen
MD

1
Funktioniert perfekt in Eclipse. Vielen Dank!
Scott Biggs

33

Wenn Sie Android Studio verwenden, fügen Sie einfach die Abhängigkeit hinzu

dependencies {
     implementation 'com.android.support:appcompat-v7:25.0.1'
}

zu app/build.gradle. Und das wird funktionieren


2
Ähm ... es funktioniert nicht ... es wird immer noch nicht Android: Theme.AppCompat. * In meiner Datei styles.xml auflösen.
Michael

Ich habe gerade die Implementierung 'com.android.support:appcompat-v7:28.0.0' durch die Implementierung 'com.android.support:appcompat-v7:25.0.1' ersetzt und jetzt funktioniert es ... aber warum?
CGR

1
@CGR Ich glaube, Android hat die Themen für 28+ geändert und Light.DarkActionBar ist nicht mehr verfügbar.
DoomGoober

13

Für alle, die VS2015 verwenden, wurde dieser Fehler ebenfalls angezeigt, und es stellte sich heraus, dass ich die Bibliothek nicht zum Projekt hinzugefügt hatte ...

Install-Package Xamarin.Android.Support.v7.AppCompat

1
Ich habe dies erhalten, nachdem ich ein neues Projekt in VS2019 gestartet und es erstellt habe. Durch einfaches Ausführen einer "Rebuild Solution", ohne etwas anderes installieren zu müssen, wurden die Fehler behoben.
Glen Little


7

Eine einfache Lösung: Ersetzen Sie den Inhalt dieser Datei (/res/values/styles.xml) durch folgenden Text:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>


1
"Fehler beim Abrufen des übergeordneten Elements für das Element: Es wurde keine Ressource gefunden, die dem angegebenen Namen 'AppBaseTheme' entspricht."
Yousha Aleayoub

1
Dies ist nicht AppCompat .
IgorGanapolsky

4
dependencies {

    compile 'com.android.support:appcompat-v7:23.0.0'

}

Das hat bei mir funktioniert ... in Android Studio ...


4

In meinem Fall habe ich ein androidProjekt von einem Computer auf einen anderen übertragen und hatte dieses Problem. Was für mich funktioniert hat, war eine Kombination einiger der Antworten, die ich gesehen habe:

  • Entfernen Sie die Kopie der Appcompat-Bibliothek, die sich im libs-Ordner des Arbeitsbereichs befand
  • Installieren Sie SDK 21
  • Ändern Sie die Projekteigenschaften, um diesen SDK-Build zu verwenden Geben Sie hier die Bildbeschreibung ein
  • Richten Sie einen mit SDKS 21 kompatiblen Emulator ein und starten Sie ihn
  • Aktualisieren Sie die Ausführungskonfiguration, um das Gerät zur Ausführung aufzufordern, und wählen Sie Ausführen

Meins lief nach diesen Schritten gut.


3

Mit Visual Studio 2015 (Windows7) + Xamarin diesen Fehler hatte und nach mehreren Dinge ( die Installation von Paketen, download android_m2repository_r10.zip ...) versuchen , beendet die vollständige Entfernen Xamarin Ordner innerhalb

C:\Users\<my user>\AppData\Local

Danach erstellen Sie die Anwendung in VS neu und die Fehler sind verschwunden.


Dies hat bei mir funktioniert :) Hinweis: Verwenden von Visual Studio Enterprise. 2017 15.8 Vorschau 3.0
David Jones

Arbeitete auch für mich mit VS 2017.
Richard Lyle

3

Stellen Sie sicher, dass sich in Ihrem SDK ein v7-Verzeichnis befindet. Ich dachte, die 'Android Support Library' (in Extras) wäre ausreichend. Es stellte sich heraus, dass mir das 'Local Maven Repository für Support Libraries (Extras; Android; m2repository)' fehlte. Studio fand das tatsächlich und korrigierte die Gradle-Abhängigkeiten. mit gradle bauen dann funktionierte. $ cat app / build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "pat.example.com.gdbdemo"
        minSdkVersion 15
        targetSdkVersion 23
        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:23.2.1'
}

3
dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
}

Kompilierung wurde durch Implementierung ersetzt, weiß nicht warum.


Das ist die Lösung für mich.
Shizhen

2

Wenn Sie Android.mk zum Erstellen verwenden, verwenden Sie USE_AAPT2, das die erstellte Ressource aus dem AAR verknüpft.

Fügen Sie die folgende Zeile in die Datei Android.mk ein:

LOCAL_USE_AAPT2: = true


1
  1. Aktualisieren Sie Ihr SDK im Manager und stellen Sie sicher, dass Sie es einschließen Android support library in den Extras enthalten ist
  2. Gehen Sie im Datei-Explorer (Finder auf dem Mac) zum SDK und suchen Sie den Ordner des Extra ( ..\sdk\extras\android\support\v7\appcompat\res\valuesunter Windows). Irgendwo drin ist ein themes.xmlund themes_base.xml . Kopieren Sie diese beiden Dateien.
  3. Fügen Sie in Ihrem Projekt die Dateien in das Verzeichnis 'values' ein

Das Kopieren von theme_base.xml in res / values ​​löste das ursprüngliche Problem, führte jedoch zu anderen ungelösten Verweisen.
FractalBob

1

Wenn Sie Visual Studio für MAC verwenden , beheben Sie das Problem, indem Sie auf Projekt> Nutget-Pakete wiederherstellen klicken


0

In Eclipse: Wenn im Anschluss an den Anweisungen , um eine Support - Bibliothek als Projektbibliothek Import bei Support - Bibliotheken hinzufügen , vergessen Sie nicht die Option „Copy proyects in Arbeitsbereich“ zu überprüfen !


0

Ich hatte das gleiche Problem. Keine der hier aufgeführten Lösungen hat meiner Situation geholfen. Wie sich herausstellte, habe ich den übergeordneten Ordner für ein Projekt in Android Studio 1.5 importiert und nicht den Projektordner selbst. Dies warf Gradel in ein Schwindelgefühl. Die Lösung bestand darin, stattdessen den Projektordner zu importieren.


-1

In Xamarin, wenn Sie dieses Problem haben, wenn Sie ein neues SDK hinzufügen. Die einfache Lösung ist Öffnen Sie Ihre Stildatei und fügen Sie diese Zeile hinzu.

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>

Es ist eine bessere Lösung als Appcompat hinzuzufügen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.