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

时间:2015-03-13 14:13:15

标签: java android android-studio sdk rendering

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

  

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

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

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

10 个答案:

答案 0 :(得分:96)

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

答案 1 :(得分:20)

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

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

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

转到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 UI中,开发人员应该更多地依赖于工具栏的视觉上不同的颜色方案而不是应用程序图标。不鼓励在API 21设备和更新版本上使用应用程序图标和标题作为标准布局。

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

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

答案 2 :(得分:17)

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

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

解决方法是一次构建项目,然后通过清除缓存刷新渲染。请参阅附加图像以获取清除缓存的刷新图标。

Refresh Button Location

答案 3 :(得分:4)

这个答案对我有用:

MyActivity extends AppCompatActivity

而不是:

MyActivity extends ActionBarActivity   // now deprecated

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

答案 4 :(得分:1)

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

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

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
}

答案 5 :(得分:0)

我通过更改buildToolsVersion "21.1.2" (模块:应用)上的build.gradle来修复它,

请勿使用buildToolsVersion "22"

答案 6 :(得分:0)

请使用构建API21查看预览。我在Mac上,22版已经坏了/不适合我。当我切换回构建21时,我可以看到预览。!

答案 7 :(得分:0)

事实证明,您无法使用buildToolsVersion "22"targetSdkVersion 22,因为它无法正常呈现。它似乎只能在设置为API 21或更低时呈现应用程序,因为我得到了相同的错误,一旦我将其更改回21,它就开始再次工作。只需进入build.gradle(module:app)并将API更改回最新版本的API 21.

答案 8 :(得分:0)

我通过重建项目或模块解决了这个问题。

答案 9 :(得分:0)

解决:

创建一个新文件夹 值-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>

并且都是:)