ОШИБКА: проблемы с отрисовкой Следующие классы не найдены 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.