渲染期间的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 标记自定义工具栏。我推荐使用<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
【讨论】:
这是完整的未来证明答案。 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 中!我已将 buildToolsVersion
从 22
更改为 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 管理器选项卡灰显
错误:无法解决:com.twitter.sdk.android:twitter:2.3.0 - Android Studio