ОШИБКА: проблемы с отрисовкой Следующие классы не найдены android.support.v7.internal.widget.ActionBarOverlayLayout


97

Я только новичок в разработке приложений для Android. Когда я создал новый проект в Android Studio 1.1.0, он избавился от этой ошибки « проблемы с рендерингом. Следующие классы не могут быть найдены android.support.v7.internal.widget.ActionBarOverlayLayout »

Теперь я искал об этом в Google и нашел, возможно, 3 решения, предложенные большинством людей.

Они говорят:

  1. Либо измените api (из области окна предварительного просмотра) с 22 на 21, либо

  2. Измените тему приложения с «Тема проекта» на любую другую тему.

  3. убедитесь, что импортировали правильную библиотеку appcompat-v7 в структуру вашего проекта -> зависимости. Выполните следующие действия : Добавьте идентификатор проекта функции библиотеки поддержки в раздел зависимостей. Например, чтобы включить проект appcompat, добавьте compile "com.android.support:appcompat-v7:18.0.+" в раздел зависимостей, как показано в следующем примере:

dependencies {
    ...
    compile "com.android.support:appcompat-v7:18.0.+" }

Примечание. Моя библиотека поддержки Android обновлена ​​(установлена ​​с помощью SDK Manager).

Выполнив первые два шага, удалили ошибку. Но я чувствую, что это не постоянные решения. Второй шаг кажется временным решением. Я также сомневаюсь в Первом шаге, что, если удалить ошибку, мы изменим api с 22 на 21, тогда в конце наше приложение не будет работать в Android 5.1.1 (API 22), оно будет ограничено Android 5.0 Только .1 и ниже (API 21). Верны ли мои сомнения? Что касается третьего шага, является ли это постоянным решением этой проблемы?

PS: Извините за несовпадение тегов, не разрешено добавлять точные теги из-за репутации сайта


1
Для меня даже первые два шага не решают проблему ... Я получаю "проблемы с рендерингом" со всеми макетами, которые имеют представления из android.support. *. Это расстраивает!
— user1987392 02

Ответы:


162

Исправьте файл res / values ​​/ styles.xml следующим образом:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"/>

Подробное объяснение по запросу: Theme.AppCompat.Light.DarkActionBarв Baseлюбом случае является подклассом суперкласса . Ctrl + щелчок (Android Studio) по нему, и вы попадете к источнику:

<style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar" />

Мы ничего не меняли, просто определили точнее.


29
Ничего себе, какой ужасный опыт работы с Android Studio.
— Уоррен П.

6
Если я хочу использовать "Theme.AppCompat.Light.NoActionBar", что тогда?
— Хасиб Джадун

4
Как ни странно, добавляется слово «База». работал у меня. «Вся ваша база принадлежит нам».
— SMBiggs 08

1
У меня тоже сработало ... Я работаю над старым приложением, и база исправила ошибку!
— Саид Яздани

1
Почему точное определение темы устраняет проблему?
— Роберт

28

Это известная ошибка, начиная с Android Studio build 1.1 (она все еще присутствует в предварительных версиях 1.2 и 1.3). Переключение уровня API предварительного просмотра с 22 на 21 исправляет большинство людей. В ожидании исправления вы тоже можете попробовать.

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

Первоначальный ответ здесь: Проблемы с рендерингом в Android Studio v 1.1 / 1.2

Просто репост


16

Измените src / res / values ​​/ styles.xml

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

Затем выберите API22, и проблема будет решена!


3

После этой ошибки я использую:

API-22 Android 5.1.1, и эта проблема все еще существует, но вы можете в верхней части панели инструментов студии Android выбрать:

Material Light -> Material Light

а затем вы можете увидеть предварительный просмотр с панелью инструментов и светлой темой.

Надеюсь это поможет.


1

Я исправил эту проблему, переключившись на тему Holo Dark, а затем снова на тему приложения. Я просто нажал кнопку над средством просмотра с надписью «Тема приложения» рядом с представлением поворота в Android Studio. Примерно в 10% случаев это само по себе не работает, и мне также приходится менять API программы просмотра с 22 на 19.

Понятия не имею, почему это работает, но предложения, представленные выше, для меня не сработали.


0

Вам не нужно менять тему. Возможно, вы расширяете ActionBarActivity (не рекомендуется), а не просто Activity. Измените его и создайте проект.


Новые правила @Kleyton. Вместо расширения ActionBarActivity (которое теперь устарело) рекомендуется расширить AppCompatActivity (согласно страницам разработчика Google Android).
— Ашиш Гоял

0

Если вы измените действие с ActionBarActivity на просто действие, не забудьте импортировать само действие. То есть

импортировать android.app.Activity

Это отстой, но эй, это их вина, а не наша.

Также вы можете просто изменить тему, нажав «AppTheme» и выбрав Holo.Light.DarkActionBar. Он автоматически обновит файл styles.xml, после чего перестройте проект.

Я сделал все это, и это работает для меня, хотя я думаю, что ребята из Google и IntelliJ должны что-то сделать с этой проблемой рендеринга, поскольку нам сказали перейти с Eclipse на Android Studio.


Пришли новые правила, братан! Вместо расширения ActionBarActivity (который теперь устарел) рекомендуется расширить AppCompatActivity (согласно страницам разработчиков google android).
— Ашиш Гоял,

Работает ли он так же, как Activity? И решает ли он проблемы рендеринга XML?
— Андрекон

Согласно страницам разработчиков google android, он (AppCompatActivity) заботится обо всем, что раньше делал ActionBarActivity,
— Ашиш Гоял,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.