Android studio sdk version 22 исключение во время рендеринга: action_bar

Когда я создаю новый проект в студии Android, это не дает никаких проблем. Однако, глядя на дизайн activity_main.xml, это показывает мне следующее:

Проблемы рендеринга Исключение, возникающее при рендеринге: action_bar.

когда я меняю уровень sdk с 22 на 21 с сайта-разработчика Android-студии, ничего не показывает

Как я могу решить эту проблему? Это не важная проблема, но я задался вопросом, как я могу это исправить.

Ответ 1

Да, просто нужно было настроить уровень Android в раскрывающемся списке. Предварительный просмотр вкладки дизайна на уровне API 22 нарушен прямо сейчас. Я посмотрел, что трассировка стека для ошибки, и это имеет какое-то отношение к необходимости альфа-канала. Я уверен, что Google установит его в понедельник.:)  enter image description here

Ответ 2

ActionBar устарел в пользу панели инструментов, которая была добавлена ​​в API 21. Тем не менее, базовая тема для шаблонов Android Studio по-прежнему, похоже, использует темы на основе ActionBar.

Решение не должно понижать версию вашей сборки, а скорее менять тему приложения. Если вы откажетесь от своих инструментов сборки, вы пропустите поддержку последних функций, добавленных в Android 5.1 и более поздних версиях.

Ваша базовая тема указана в AndroidManifest.xml в разделе application/android: theme.

Перейдите к res/values ​​/styles.xml и измените родительский атрибут на другую базовую тему, которая не зависит от устаревшего ActionBar. В маловероятном случае ваше приложение - API 21+, вы можете использовать Theme.Material. В противном случае вам нужно будет использовать Theme.AppCompat.NoActionBar или определить свою собственную базовую тему.

Вот пример styles.xml:

<style name="AppTheme.Base" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

Если вы используете это, обязательно разместите элемент панели инструментов в своих XML-макетах, где вы хотите, чтобы ActionBar появился. Вам нужно будет настроить панель инструментов с помощью дочерних тегов XML. Я рекомендую использовать тег <include>. Как говорится в документации на панели инструментов, новые принципы дизайна Google требуют изменения визуального стиля:

В современных Android-интерфейсах разработчики должны больше ориентироваться на визуально отличную цветовую схему для панелей инструментов, чем на значок своего приложения. Использование значка приложения плюс заголовок в качестве стандартного макета не рекомендуется на устройствах API 21 и новее.

android.support.v7.widget.Toolbar находится в библиотеке поддержки для устройств pre-API 21.

EDIT: Как отмечает первый комментарий, в Google есть блог, объясняющий, как использовать новую панель инструментов. http://android-developers.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html

Ответ 3

Извините за проблему ребята. Причина этого вопроса в том, что библиотека рендеринга теперь пытается использовать больше фактического кода из библиотеки appcompat, чтобы быть более точным. Тем не менее, это выявило некоторые ошибки в Android Studio, когда проект не построен.

Нет необходимости обновлять ваши файлы gradle или изменять стили, как предлагают некоторые из них.

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

Refresh Button Location

Ответ 4

Этот ответ сработал у меня:

MyActivity extends AppCompatActivity

Вместо:

MyActivity extends ActionBarActivity   // now deprecated

Вернитесь в свой предварительный просмотр, очистите кеш и обновите его!

Ответ 5

Через дни разочарования я наконец узнал, что ответ лежит в build.gradle моего модуля приложения! Я изменил buildToolsVersion с 22 на 21.1.2, чтобы правильно решить это точное исключение, подобное вашему. Кажется, что все, что связано с API 22: Android 5.1, дает икоту в данный момент. Надеюсь, Google скоро это исправит.

Изменение этих строк в build.gradle дало мне быстрое решение этой проблемы:

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
}

Ответ 6

Я исправил его, изменив buildToolsVersion "21.1.2", на build.gradle (Module: app),

Не используйте buildToolsVersion "22"

Ответ 7

Пожалуйста, используйте сборку API21 для просмотра предварительного просмотра. Я нахожусь на mac, а build 22 сломан/не работает для меня. Когда я вернулся к сборке 21, я мог видеть предварительный просмотр.!

Ответ 8

Оказывается, вы не можете использовать buildToolsVersion "22" или targetSdkVersion 22, потому что он не может правильно отобразиться. Кажется, он может отображать приложение только тогда, когда оно установлено на API 21 или ниже, потому что я получал такую ​​же ошибку, и как только я сменил его на 21, он снова начал работать. Просто зайдите в build.gradle(module: app) и измените API на последнюю версию API 21.

Ответ 9

Я решил это, перестроив проект или модуль.

Ответ 10

Решение:

Создать новую папку Значения-V19

Создайте файл styles.xml в этой папке

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- For actionBar n' statusbar -->
    <item name="colorPrimary">#COLOR/item>
    <item name="colorPrimaryDark">#COLOR</item>

    <!-- For items -->
    <item name="colorAccent">#COLOR</item>
</style>

и все:)