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

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

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

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

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

13 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

<resources>

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

Если вы используете Eclipse, просто скопируйте файл android-support-v7-appcompat.jar в папку libs, если вы собираетесь использовать ресурсы.

Следуйте инструкциям здесь для " Добавление библиотек с ресурсами".

Зависимости {

implementation 'com.android.support:appcompat-v7:28.0.0'

}

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

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

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

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

dependencies {

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

}

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

Убедитесь, что в вашем 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'
}

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

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

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

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

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

LOCAL_USE_AAPT2: = true

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

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

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

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

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

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

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

Другие вопросы по тегам