Ответ 1
Сделайте это:
"android:style/Theme.Holo.Light.DarkActionBar"
Вы пропустили ключевое слово android
перед стилем. Это означает, что это встроенный стиль для Android.
Платформа: 4,3
Уровень API: 18
AndroidManifest.xml:
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="18" />
значения-v14\styles.xml:
<resources>
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
</style>
<style name="CustomActionBarTheme"
parent="@style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar"
parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
</style>
Я новичок-андроид. Спасибо большое!
Сделайте это:
"android:style/Theme.Holo.Light.DarkActionBar"
Вы пропустили ключевое слово android
перед стилем. Это означает, что это встроенный стиль для Android.
Убедитесь, что вы установили целевой API (отличный от целевого SDK) в свойствах проекта (а не в манифесте) не менее 4.0/API 14.
@android не работал у меня. Когда я использую android (без @), он работает как шарм.
Пример:
<style name="CustomActionBarTheme"
parent="android:style/Theme.Holo.Light.DarkActionBar">
В учебниках, предназначенных для новичков, есть большая ошибка: http://developer.android.com/training/basics/actionbar/styling.html
Это важно, потому что почти невозможно обнаружить причину ошибки для новичков.
Ошибка заключается в том, что в этом руководстве явно указано, что учебник действителен для уровня 11 уровня (Android 3.0), а на самом деле это справедливо только для темы Theme.Holo(без дополнительных расширений и вариантов)
Но в этом учебнике используется тема Theme.holo.Light.DarkActionBar, которая является только действительной темой с 14-го уровня (Android 4.0) и выше.
Это лишь один из многих примеров ошибок, обнаруженных в этих руководствах (которые в лучшем случае важны). Кто-то должен исправить эти ошибки в эти выходные, потому что они действительно дорогостоящие и раздражающие timethieves. Если есть способ, я могу отправить эту информацию в команду Android, тогда, пожалуйста, скажите мне, и я это сделаю. Надеюсь, однако, они читают Stackoverflow. (позвольте мне предложить: команде Android следует подумать о том, чтобы поставить кого-то новичка, чтобы испытать все учебные пособия в качестве квалификации, которые они действительны).
Другая ошибка я (и бесчисленное множество других людей) обнаружила, что модуль соответствия обратной связи appcombat действительно не работает, если вы строго следуете учебным пособиям. Ошибка неизвестна. Мне пришлось отказаться.
Что касается ошибки в этом потоке, вот цитата из текста учебника с курсивом о несоответствии:
" Только для Android 3.0 и выше
Если вы поддерживаете только Android 3.0 и выше, вы можете определить фон панели действий следующим образом:
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.Holo.Light.DarkActionBar">
ERROR1: Только Theme.Holo можно использовать с Android 3.0. Поэтому удалите "Light.DarkActionBar и т.д.
ERROR2: @style/Theme.Holo " > не будет работать. Необходимо написать @android: style/Theme.Holo" > , чтобы указать, что это встроенная тема, на которую ссылаются. (Немного странно, что "встроенный" не является значением по умолчанию, но нужно указать?)
Рекомендация компилятора для исправления ошибок состоит в том, чтобы определить уровень 14 api как минимум sdk. Это не оптимально, потому что это создает несоответствие Andreoid 3.0 (уровень 11 api). Поэтому я использую только Theme.Holo, и это, кажется, работает отлично (но новый вывод, хотя).
Я использую Netbeans с поддержкой Android. Хорошо работает.
Если вы используете студию Android, это может быть полезно для вас.
У меня была аналогичная проблема, и я решил ее, изменив путь skd по умолчанию: C:\Program Files (x86)\Android\android-studio\sdk до C:\Program Files (x86)\Android\android- sdk.
Кажется, проблема возникла из версии компилятора (gradle автоматически устанавливает ее на самую высокую, доступную в папке sdk), которая не поддерживает эту тему, и поскольку у студии Android была только api 7 в ее папке sdk, он дал мне эту ошибку.
Подробнее о том, как изменить Android-путь sdk в Android Studio: Android Studio - Как изменить путь к SDK Android
Кроме того, если вы попытаетесь использовать CustomActionBarTheme, убедитесь, что есть
<application android:theme="@style/CustomActionBarTheme" ... />
в AndroidManifest.xml
not
<application android:theme="@android:style/CustomActionBarTheme" ... />
Вы можете изменить это parent attribute = "android: style/Theme.Holo.Light.DarkActionBar"