Подтвердить что ты не робот

Ресурс Theme.AppCompat.Light не найден в Android Studio

При попытке расширить ActionBarActivity мне нужно использовать тему AppCompat (Theme.AppCompat.Light). Когда я пытаюсь добавить его в манифест и styles.xml, я получаю

Ошибка: (31, 28) Ресурс не найден, который соответствует указанному имени (at 'theme' со значением '@android: style/Theme.AppCompat.Light').

Хотя я загрузил библиотеки поддержки и включил это в мой файл build.gradle →

dependencies {
compile 'com.android.support:appcompat-v7:19.0.+'
compile 'com.android.support:support-v4:19.0.+'}
4b9b3361

Ответ 1

В Android Studio у меня была такая же ошибка при использовании android:theme='@android:style/Theme.AppCompat.Light, но когда я использую android:theme="@style/Theme.AppCompat.Light" в файле AndroidManifest.xml, ошибка исчезла.

Похоже, что разница связана со спецификацией "@android", установленной в системе Android, на локально определенную тему "@style". Использование локально определенной темы работает из-за определения зависимости gradle от библиотеки appcompat compile 'com.android.support:appcompat-v7:19.0.+', которая импортируется как локальная тема.

Для справки, официальная документация от Google для разработчиков Android о добавлении ActionBar на устройствах Android 2.1+ дает указание: android:theme="@style/Theme.AppCompat.Light" https://developer.android.com/training/basics/actionbar/setting-up.html

Ответ 2

Из Android Studio, отличного от Eclipse:

  • Откройте файл build.gradle для вашего приложения.

  • Включите проект appcompat и добавьте компиляцию "com.android.support:appcompat-v7:18.0.+" в раздел зависимостей, как показано в следующем примере:

    зависимости {   ...   компилировать "com.android.support:appcompat-v7:18.0.+" }

  • Мое примечание: В styles.xml удалите ссылку на Android, как в:

    style name= "AppTheme" parent = "Theme.AppCompat.Light"

Подробнее см. ссылку

Ответ 3

Использовать Theme.AppCompat.Light вместо AppCompat.Theme.Light