Ресурс не найден - Theme.AppCompat.Light.DarkActionBar


145

Я использовал ActionBar Style Generator и теперь пытаюсь использовать его в своем приложении, но получаю:

ошибка: ошибка при получении родительского элемента: не найден ресурс, который соответствует указанному имени '@ style / Theme.AppCompat.Light.DarkActionBar'.

я использую android-support-v7-appcompat.jar lib внутри папки libs

моя цель - сделать приложение совместимым с 2.3 или выше


Вы добавили банку в папку libs?
Рагхунандан

да андроид-поддержка-v7-appcompat.jar
вс

Ответы:


96

AppCompatэто библиотечный проект Вам нужно сослаться на проект библиотеки в вашем проекте Android.

Проверьте тему Добавление библиотек с ресурсами .


1
уже поместил android-support-v7-appcompat.jar в папку libs
Sun

4
@AbrahimNeil, это не правильный путь. это библиотечный проект, поэтому на него нужно ссылаться так же, как в сервисах Google Play
Рагхунандан

когда я импортирую android-support-v7-appcompat.jar, получая Невозможно разрешить целевой android-16, это требуется?
Вс


1
добавив implementation 'com.android.support:appcompat-v7:28.0.0', под зависимостями решил мою проблему.
Хилал

35

Если вы используете Eclipse , добавьте reference libraryв свой проект следующие шаги:

  1. Щелкните правой кнопкой мыши ваш проект в Project Explorerпредставлении.
  2. Нажмите Properties.
  3. Нажмите Androidв Propertiesокне.
  4. В Libraryгруппе нажмитеAdd...
    • Смотрите изображение ниже.
  5. Выберите библиотеку. Нажмите OK .
  6. Нажмите OKкнопку еще раз в окне свойств.

Кнопка «Добавить» в окне свойств проекта, раздел Android, группа «Библиотека».


4
Как вы знаете, оп использует Eclipse не Android Studio ?. Снимок выложен для затмения.
Рагхунандан

@Raghunandan извините, не забудьте упомянуть об этом
MD

1
Отлично работает в Eclipse. Спасибо!
Скотт Биггс

33

Если вы используете Android Studio, просто добавьте зависимость

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

к app/build.gradle. И это будет работать


2
Хм ... это не работает ... это все равно не разрешит Android: Theme.AppCompat. * В моем файле styles.xml.
Майкл

Я просто заменил реализацию 'com.android.support:appcompat-v7:28.0.0' на реализацию 'com.android.support:appcompat-v7:25.0.1' и теперь она работает ... но почему?
CGR

1
@CGR Я считаю, что Android изменил темы для 28+, а Light.DarkActionBar больше не доступен.
DoomGoober

13

Для всех, кто использовал VS2015, я тоже получал эту ошибку, и оказалось, что я не добавил библиотеку в проект ...

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

1
Я получил это после запуска нового проекта в VS2019 и его постройки. Простое выполнение «Rebuild Solution» без необходимости устанавливать что-либо еще решало ошибки.
Глен Литтл


7

Простое решение - заменить содержимое этого файла (/res/values/styles.xml) следующим текстом:

<resources>

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


1
Msgstr "Ошибка при получении родительского элемента: не найден ресурс, который соответствует указанному имени" AppBaseTheme "."
Юша Алеауб

1
Это не AppCompat .
Игорь Ганапольский


4

В моем случае я androidперенес проект с одного компьютера на другой, и у меня возникла эта проблема. То, что работало для меня, было комбинацией некоторых ответов, которые я видел:

  • Удалите копию библиотеки appcompat, которая была в папке libs рабочей области.
  • Установите SDK 21
  • Измените свойства проекта, чтобы использовать эту сборку SDK введите описание изображения здесь
  • Установите и запустите эмулятор, совместимый с sdks 21
  • Обновите конфигурацию запуска, чтобы запросить устройство для запуска, и выберите «Выполнить».

Мой побежал нормально после этих шагов.


3

Использование Visual Studio 2015 (Windows7) + Xamarin имел эту ошибку и после попытки нескольких вещей (установка пакетов, скачать android_m2repository_r10.zip ...) прекратил удаление полной папки Xamarin внутри

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

После этого перестройте приложение в VS и ошибки исчезли.


Это сработало для меня :) Примечание: Использование Visual Studio Enterprise. 2017 15.8 Предпросмотр 3.0
Дэвид Джонс

Работал и на меня, используя VS 2017.
Ричард Лайл

3

Убедитесь, что в вашем SDK есть каталог v7, я подумал, что достаточно иметь «Библиотеку поддержки Android» (в дополнениях). Оказывается, мне не хватало «Локального репозитория Maven для библиотек поддержки (дополнения; android; m2repository)». Студия обнаружила это и исправила зависимости gradle. используя gradle, чтобы построить тогда работал. $ 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'
}

компиляция была заменена реализацией, не знаю почему.


Это решение для меня.
Шижень

2

Если вы используете Android.mk для сборки, используйте USE_AAPT2, который ссылается на встроенный ресурс из AAR.

Добавьте строку ниже в файле Android.mk:

LOCAL_USE_AAPT2: = true


1
  1. Обновите свой SDK в диспетчере и обязательно включите Android support library в дополнительные
  2. Перейти к SDK в проводнике (Finder на Mac), отследить папку дополнительного ( ..\sdk\extras\android\support\v7\appcompat\res\valuesв Windows). Где-то есть themes.xmlи themes_base.xml . Скопируйте оба этих файла.
  3. В вашем проекте вставьте файлы в каталог 'values'

Копирование themes_base.xml в res / values ​​решило исходную проблему, но привело к другим неразрешенным ссылкам.
FractalBob

1

Если вы используете Visual Studio для MAC , исправьте проблему, выбрав «Проект»> «Восстановление пакетов Nutget».



0

У меня была такая же проблема. Ни одно из решений, перечисленных здесь, не помогло моей ситуации. Как оказалось, я импортировал родительскую папку для проекта в Android Studio 1.5, а не саму папку проекта. Это повергло Граделя в бешенство. Решением было импортировать папку проекта вместо этого.


-1

В xamarin, если вы столкнулись с этой проблемой при добавлении любого нового SDK. Простое решение: откройте файл стилей и добавьте эту строку.

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

Это лучшее решение, чем добавление appcompat.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.