Ресурс не найден - 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
вс
1
@AbrahimNeil: см. Не могу найти тему.AppCompat.Light для нового Android Поддержка ActionBar может помочь вам
ρяσѕρєя K

Ответы:

96

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

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

Raghunandan
источник
1
уже поместил android-support-v7-appcompat.jar в папку libs
Sun
4
@AbrahimNeil, это не правильный путь. это библиотечный проект, поэтому на него нужно ссылаться так же, как в сервисах Google Play
Рагхунандан
когда я импортирую android-support-v7-appcompat.jar, получая Невозможно разрешить целевой android-16, это требуется?
Вс
1
давайте продолжим эту дискуссию в чате
Рагхунандан,
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
dependencies {

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

}

Это сработало для меня ... в Android Studio ...

Срину Ятам
источник
4

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

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

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

JanB
источник
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

Prasanth.NVS
источник
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».

JotaPardo
источник
0

В Eclipse: при импорте библиотеки поддержки в качестве библиотеки проекта, следуя инструкциям в разделе Добавление библиотек поддержки , не забудьте установить флажок «Копировать проекты в рабочую область» !

villamejia
источник
0

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

BishopZ
источник
-1

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

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

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

Nawin
источник