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>
и все:)