Не удалось найти следующие классы: android.support.v7.internal.app.WindowDecorActionBar


114

Что вызывает следующую ошибку при предварительном просмотре макета в Android Studio?

Проблемы рендеринга Следующие классы не могут быть найдены: - android.support.v7.internal.app.WindowDecorActionBar (Fix Build Path, Create Class) Совет: попробуйте собрать проект.


14
закрыто как не по теме? шутки в сторону? Те, кто проголосовали за закрытие, определенно не понимают вопроса.
Джахид

Ответы:


273

Панель действий устарела и заменена панелью инструментов. При этом вы можете сделать следующее, если хотите сейчас продолжить использование Actionbar:

  1. Откройте файл styles.xml в папке значений внутри папки res.
  2. Добавьте слово Base в начало имени темы, чтобы оно читалось как «BaseTheme.AppCompat.Light.DarkActionBar».

введите описание изображения здесь

Сегодня у меня была такая же проблема, и это решение сработало для меня. К вашему сведению, я работаю в Android Studio, но, надеюсь, решение аналогично Eclipse.

К вашему сведению, вот достойное сообщение в блоге о замене панели действий на панель инструментов, когда вы будете готовы к этому: https://blog.xamarin.com/android-tips-hello-toolbar-goodbye-action-bar/


8
Ничего подобного тому, как Гуг меняет вещи из-под тебя. Очередной раз. Приятное зрелище @joshgoldeneagle!
saywhatnow

7
Я получил эту ошибку, просто создав новый проект по умолчанию в Android Studio. Это решило это.
AutonomousApps

После однодневного исследования я наконец нашел решение. Спасибо @joshgoldeneale
Abish R

если "BaseTheme.AppCompat.Light.DarkActionBar" не работает, вам следует попробовать "Theme.Base.AppCompat.Light.DarkActionBar", потому что он работает для меня ... :) (android studio 3.0.1)
Mang Jojot,

Ты потрясающий
Навид Ахмад

46

Я думаю, вы должны зависеть от "com.android.support:appcompat-v7:23.1.1"своих moduleнастроек.

ActionBar устарела.

Просто измените свои зависимости с 'com.android.support:appcompat-v7:23.1.1'на 'com.android.support:appcompat-v7:23.0.1'в build.gradle .

Вы также можете изменить свой родительский стиль на "Theme.AppCompat.Light.NoActionBar".

Попробуйте использовать Toolbarвместо ActionBar.


32

Это работает для меня

Изменение родительского элемента AppTheme в res / values ​​/ styles.xml решило эту проблему. замещать

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>

с участием

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

Или вы можете изменить уровень API 21 из списка.


6
Это работает, но что именно происходит, когда вы устанавливаете BaseTheme?
Micro

Android представил панель инструментов вместо панели действий, которая является причиной этой ошибки, но, изменив ее на базовую, вы просто решаете проблему. По умолчанию он не меняет себя (в текущей версии Android Studio), поэтому мы должны делать это вручную. Вы также можете просмотреть другие ответы, которые также говорят вам о том же. Извините, я был занят проектом, поэтому не могу ответить быстро.
Ravikant Paudel

9

goto: res -> значения -> стили (V21) ->

Код

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

выберите свою тему, как Apptheme.NoActionBarв предварительном просмотре . Потому что ActionBarэто depricated, добро пожаловать обратно ToolBar. НЕТ необходимости изменять ваши зависимости в build.gradle(Module:app). от com.android.support:appcompat-v7:23.1.1до com.android.support:appcompat-v7:23.0.1.

Надеюсь, что это поможет вам!!!


8

У меня была аналогичная проблема, и, как многие говорили, поскольку ActionBar устарел, трюк заключался в том, чтобы указать

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

ПРИМЕЧАНИЕ: родительский элемент заканчивается на .NoActionBar.

Поскольку ActionBar устарел, Android перешел на использование ToolBar, о котором вы можете прочитать здесь, на сайте developer.android.com.

Я пытался указать

<style name="AppTheme.NoActionBar">

Как указано в другом сообщении, и это вызвало ошибки. Хотя у других может не быть этой проблемы.


4

У меня такая же проблема в Android Studio 1.5 (даже с AppCompatActivity), и моя попытка решить эту проблему заключалась в обновлении моей Android Studio до 2.0. В моем случае это решает проблему. Вы можете найти ссылку для загрузки в: http://tools.android.com/download/studio/canary/latest


Кроме того, Android Studio 2.0 имеет мгновенный запуск, что, на мой взгляд, очень круто. Мой код мгновенно обновляется на моем устройстве. Тебе действительно стоит попробовать это.
ninjahoahong


3

спасибо @joshgoldeneagle, у меня работал в AS v1.4. в AS также эффективно открыть build.gradle (Module.app) и изменить версию с v7.23.1.1 на v7.23.0.1 -hth


2

Быстрая починка

Выберите тему без AtcionBar в инструменте предварительного просмотра пользовательского интерфейса
Кнопка выбора изображения введите описание изображения здесь


2

Вам нужно будет изменить уровень рендеринга api на 17, может быть проблема с рендерингом с api более высокого уровня, может быть api более высокого уровня, предположим, что у вас есть тема по умолчанию, и надеюсь, вы не указали ни одной.

введите описание изображения здесь


1

Для AS v1.4 добавление "Base" перед Theme.AppCompat.Light.DarkActionBar в папке styles.xml решило проблему.

Кроме того, обновление до версии AS v2.1 также решило проблему. Что более вероятно, зависит от соавторов и их версии AS.


0

В res / values ​​/ styles.xml вы найдете свою AppTheme, как показано ниже: -

Измените его на: -

добавив «Базу», проблема рендеринга будет решена.


0

Изменение темы в манифесте решило мою проблему.

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.