渲染期间的android studio sdk 22版异常:action_bar

Posted

技术标签:

【中文标题】渲染期间的android studio sdk 22版异常:action_bar【英文标题】:android studio sdk version 22 exception during rendering: action_bar 【发布时间】:2015-05-16 01:37:15 【问题描述】:

当我在 android studio 上创建一个新项目时,它没有出现任何问题。然而,看看activity_main.xml 的设计,它向我展示了这一点:

渲染问题 渲染过程中引发异常:action_bar。

当我从设计页面将 sdk 级别 22 更改为 21 时,android studio 什么也没有显示

我该如何解决这个问题?这不是重要的问题,但我想知道如何解决这个问题。

【问题讨论】:

【参考方案1】:

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

【讨论】:

我认为它仍然没有修复:( 还是不行。被举报了吗? 哪个月/年的星期一? :) 那个星期一还没到【参考方案2】:

ActionBar 已被弃用,取而代之的是 API 21 中添加的 Toolbar。不过,Android Studio 模板的基本主题似乎仍使用基于 ActionBar 的主题。

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

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

转到 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>

如果您使用它,请确保在您希望 ActionBar 出现的 XML 布局中放置一个 Toolbar 元素。您需要使用子 XML 标记自定义工具栏。我推荐使用&lt;include&gt; 标签。正如工具栏文档中所说,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

【讨论】:

这是完整的未来证明答案。 android 开发者博客有一些关于这种情况的非常好的文档android-developers.blogspot.kr/2014/10/…。【参考方案3】:

对不起,伙计们。问题的原因是渲染库现在正在尝试使用来自 appcompat 库的更多实际代码,以便更准确。但是,这暴露了项目未构建时 Android Studio 中的一些 bug。

没有必要像一些答案所建议的那样更新你的 gradle 文件或更改样式。

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

【讨论】:

非常感谢!真的有帮助:-)【参考方案4】:

这个答案对我有用:

MyActivity extends AppCompatActivity

代替:

MyActivity extends ActionBarActivity   // now deprecated

返回预览,清除缓存并刷新!

【讨论】:

【参考方案5】:

经过几天的挫折,我终于发现答案就在我的应用模块的 build.gradle 中!我已将 buildToolsVersion22 更改为 21.1.2 以正确解决像您这样的确切异常。似乎与API 22: Android 5.1 有任何关系目前正在打嗝。希望 Google 能尽快修复它。

在 build.gradle 中更改这些行可以快速解决这个问题:

android 
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

【讨论】:

【参考方案6】:

我通过在build.gradle 上更改buildToolsVersion "21.1.2" 来修复它(模块:app)

不要使用buildToolsVersion "22"

【讨论】:

【参考方案7】:

请使用 build API21 查看预览。我在 mac 上,build 22 坏了/不适合我。当我切换回 build 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>

就是这样:)

【讨论】:

以上是关于渲染期间的android studio sdk 22版异常:action_bar的主要内容,如果未能解决你的问题,请参考以下文章

the rendering library is more recent than your version of android studio

如何用android studio 2.3.2下载旧版本的android sdk平台?

Android Studio 2.3 sdk 管理器选项卡灰显

android studio 怎么更新sdk

错误:无法解决:com.twitter.sdk.android:twitter:2.3.0 - Android Studio

安装Android studio(含sdk),sdk组件无法安装,怎么办?