Nie znaleziono zasobu - Theme.AppCompat.Light.DarkActionBar

145

Użyłem ActionBar Style Generator, a teraz próbuję użyć go w mojej aplikacji, ale otrzymuję:

błąd: Błąd podczas pobierania elementu nadrzędnego dla elementu: nie znaleziono zasobu pasującego do podanej nazwy „@ style / Theme.AppCompat.Light.DarkActionBar”.

Używam android-support-v7-appcompat.jar lib wewnątrz folderu libs

moim celem jest zapewnienie zgodności mojej aplikacji w wersji 2.3 lub nowszej

Słońce
źródło
czy dodałeś jar do folderu libs?
Raghunandan,
tak android-support-v7-appcompat.jar
Sun
1
@AbrahimNeil: zobacz Can't Find Theme.AppCompat.Light for New Android ActionBar Support może ci pomóc
ρяσѕρєя K

Odpowiedzi:

96

AppCompatto projekt biblioteczny. Musisz odwołać się do projektu biblioteki w projekcie systemu Android.

Zapoznaj się z tematem Dodawanie bibliotek z zasobami .

Raghunandan
źródło
1
już umieszczony android-support-v7-appcompat.jar w folderze libs
Sun
4
@AbrahimNeil to nie jest właściwa droga. jest to projekt biblioteczny i dlatego należy odwoływać się do niego tak samo, jak usługi Google Play
Raghunandan,
kiedy importuję android-support-v7-appcompat.jar. Nie można rozpoznać docelowego Androida-16. Czy jest to wymagane?
Niedziela,
1
niech nam kontynuować tę dyskusję w czacie
Raghunandan
1
dodając implementation 'com.android.support:appcompat-v7:28.0.0', pod zależnościami rozwiązał mój problem.
Hilal
35

Jeśli używasz Eclipse , dodaj reference librarydo swojego projektu w następujący sposób:

  1. Kliknij prawym przyciskiem myszy projekt w Project Explorerwidoku.
  2. Kliknij Properties.
  3. Kliknij Androidw Propertiesoknie.
  4. W Librarygrupie kliknijAdd...
    • Zobacz obrazek poniżej.
  5. Wybierz bibliotekę. Kliknij OK .
  6. Kliknij OKponownie przycisk w oknie Właściwości.

Przycisk „Dodaj” w oknie Właściwości projektu, sekcja Android, grupa Biblioteka.

MD
źródło
4
skąd wiesz, że op używa eclipse, a nie Android Studio? opublikowany snap dotyczy zaćmienia.
Raghunandan,
@Raghunandan przepraszam, zapomnij o tym wspomnieć
MD
1
Działa doskonale w Eclipse. Dzięki!
Scott Biggs
33

Jeśli korzystasz z Android Studio, po prostu dodaj zależność

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

do app/build.gradle. I to zadziała

NJ
źródło
2
Um ... to nie działa ... nadal nie rozwiązuje android: Theme.AppCompat. * W moim pliku styles.xml.
Michael
Właśnie zastąpiłem implementację „com.android.support:appcompat-v7:28.0.0” implementacją „com.android.support:appcompat-v7:25.0.1” i teraz działa ... ale dlaczego?
CGR
1
@CGR Uważam, że Android zmienił motywy na 28+, a Light.DarkActionBar nie jest już dostępny.
DoomGoober
13

Dla każdego, kto używa VS2015, również otrzymywałem ten błąd i okazuje się, że nie dodałem biblioteki do projektu ...

Install-Package Xamarin.Android.Support.v7.AppCompat
James Joyce
źródło
1
Otrzymałem to po rozpoczęciu nowego projektu w VS2019 i zbudowaniu go. Samo wykonanie „Odbuduj rozwiązanie” bez konieczności instalowania czegokolwiek innego rozwiązało błędy.
Glen Little
8

Jeśli używasz Eclipse, samo skopiowanie android-support-v7-appcompat.jar do folderu libs nie zadziała, jeśli zamierzasz używać zasobów.

Wykonaj kroki opisane w temacieDodawanie bibliotek z zasobami ”.

Prakash
źródło
7

Proste rozwiązanie - zamień zawartość tego pliku (/res/values/styles.xml) na tekst:

<resources>

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

Władimir Koroy
źródło
1
„Błąd podczas pobierania elementu nadrzędnego dla elementu: nie znaleziono zasobu pasującego do podanej nazwy„ AppBaseTheme ”.”
Yousha Aleayoub
1
To nie jest AppCompat .
IgorGanapolsky
4
dependencies {

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

}

To zadziałało dla mnie ... w Android Studio ...

Sreenu Yatam
źródło
4

W moim przypadku przeniosłem androidprojekt z jednego komputera na drugi i miałem ten problem. U mnie zadziałało połączenie kilku odpowiedzi, które widziałem:

  • Usuń kopię biblioteki appcompat, która znajdowała się w folderze libs obszaru roboczego
  • Zainstaluj pakiet SDK 21
  • Zmień właściwości projektu, aby użyć tej kompilacji SDK wprowadź opis obrazu tutaj
  • Skonfiguruj i uruchom emulator zgodny z SDKS 21
  • Zaktualizuj konfigurację uruchamiania, aby wyświetlić monit o uruchomienie urządzenia i wybierz opcję Uruchom

Mój działał dobrze po tych krokach.

JanB
źródło
3

Korzystanie z programu Visual Studio 2015 (Windows7) + Xamarin miało ten błąd i po wypróbowaniu wielu rzeczy (zainstalowaniu pakietów, pobraniu android_m2repository_r10.zip ...) zakończyło się usuwanie pełnego folderu Xamarin wewnątrz

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

Następnie Odbuduj aplikację w VS i błędy zniknęły.

Ryga
źródło
U mnie to zadziałało :) Uwaga: przy użyciu programu Visual Studio Enterprise. 2017 15.8 Wersja zapoznawcza 3.0
David Jones
U mnie też działało, używając VS 2017.
Richard Lyle,
3

upewnij się, że w twoim sdk znajduje się katalog v7, pomyślałem, że wystarczy mieć „Bibliotekę obsługi Androida” (w dodatkach). Okazało się, że brakowało mi „Lokalnego repozytorium Maven dla bibliotek wsparcia (dodatki; android; m2repository)” Studio znalazło to i naprawiło zależności gradle. używając gradle do budowy, a następnie działało. $ 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'
}
Patrick Lefevre
źródło
3
dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
}

kompilacja została zastąpiona implementacją, nie wiem dlaczego.

Paul McCarthy
źródło
To jest rozwiązanie dla mnie.
shizhen
2

Jeśli korzystasz z Android.mk do budowania, użyj USE_AAPT2, który łączy w zbudowanym zasobie z AAR.

Dodaj poniższy wiersz w pliku Android.mk:

LOCAL_USE_AAPT2: = true

Prasanth.NVS
źródło
1
  1. Zaktualizuj swój SDK w menedżerze i pamiętaj o dołączeniu Android support librarydodatkowych
  2. Przejdź do SDK w eksploratorze plików (Finder na Macu) i znajdź folder dodatku ( ..\sdk\extras\android\support\v7\appcompat\res\valuesw Windows). Gdzieś tam jest themes.xmli themes_base.xml. Skopiuj oba te pliki.
  3. W swoim projekcie wklej pliki do katalogu „wartości”
Alex Jolig
źródło
Skopiowanie themes_base.xml do res / values ​​rozwiązało pierwotny problem, ale zaowocowało innymi nierozwiązanymi odniesieniami.
FractalBob
1

Jeśli używasz programu Visual Studio dla komputerów MAC , rozwiąż problem, klikając pozycję projekt> przywracanie pakietów Nutget

JotaPardo
źródło
0

W Eclipse: Podczas importowania biblioteki wsparcia jako biblioteki projektu zgodnie z instrukcjami podanymi w Dodawanie bibliotek wsparcia , nie zapomnij zaznaczyć opcji „Kopiuj projekty do obszaru roboczego” !

villamejia
źródło
0

Miałem ten sam problem. Żadne z wymienionych tutaj rozwiązań nie pomogło w mojej sytuacji. Jak się okazuje, importowałem folder nadrzędny projektu do Android Studio 1.5, a nie sam folder projektu. To wprawiło Gradela w oszołomienie. Rozwiązaniem było zamiast tego zaimportowanie folderu projektu.

BishopZ
źródło
-1

W Xamarin, jeśli napotkasz ten problem podczas dodawania nowych pakietów SDK. Prostym rozwiązaniem jest otwarcie pliku stylów i dodanie tej linii.

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

To lepsze rozwiązanie niż dodawanie appcompat.

Nawin
źródło