Ресурс 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.+'}
Ответы
Ответ 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