android studio sdk版本22渲染时异常:action_bar

Ali*_*ras 51 java sdk android rendering android-studio

当我在android studio上创建一个新项目时,它没有给出任何问题.然而,看看activity_main.xml设计它显示了我:

渲染问题渲染期间引发的异常:action_bar.

当我从设计页面更改sdk级别22到21时android studio没有显示任何内容

我怎么解决这个问题?这不是重要问题,但我想知道如何解决这个问题.

Dav*_*her 96

是的,只需在下拉菜单中调整Android级别.API级别22中的设计选项卡预览现已中断.我查看了错误的堆栈跟踪,它与需要alpha通道有关.我相信谷歌会在周一修复它.:) 在此输入图像描述

  • 周一哪个月/年?:) (6认同)
  • 我认为它仍然没有修复:( (4认同)
  • 那个星期一不来了 (3认同)

col*_*ots 20

不推荐使用ActionBar,而是在API 21中添加了工具栏.但是,Android Studio模板的基本主题似乎仍然使用基于ActionBar的主题.

解决方案不是降级构建工具版本,而是更改应用程序的基本主题.如果您降级构建工具,则会错过对Android 5.1及更高版本中添加的最新功能的支持.

您的基本主题在application/android:theme下的AndroidManifest.xml中列出.

转到res/values/styles.xml并将parent属性更改为不依赖于已弃用的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>
Run Code Online (Sandbox Code Playgroud)

如果使用此选项,请确保在XML布局中放置一个工具栏元素,以便显示ActionBar.您需要使用子XML标记自定义工具栏.我建议使用<include>标签.正如工具栏文档中所述,Google的新设计原则要求改变视觉风格:

在现代Android UI中,开发人员应该更多地依赖于工具栏的视觉上不同的颜色方案而不是应用程序图标.API 21设备和更新设备不鼓励使用应用程序图标和标题作为标准布局.

android.support.v7.widget.Toolbar位于API 21之前的支持库中.

编辑:正如第一个评论所指出的,谷歌有一个博客解释如何使用新的工具栏.http://android-developers.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html


小智 17

抱歉这个问题的人.问题的原因是渲染库现在尝试使用appcompat库中的更多实际代码,以便更准确.但是,在未构建项目时,这暴露了Android Studio中的一些错误.

无需像某些答案所示更新您的gradle文件或更改样式.

解决方法是一次构建项目,然后通过清除缓存刷新渲染.有关清除缓存的刷新图标,请参阅附图.

刷新按钮位置


小智 0

我通过更改buildToolsVersion "21.1.2", on build.gradle (Module: app)来修复它,

不使用buildToolsVersion "22"