当我在Android Studio上创建新项目时,没有遇到任何问题。然而,查看activity_main.xml
设计时,它显示了以下内容:
呈现问题:在呈现期间引发了“action_bar”异常。
当我从设计页面将sdk级别从22更改为21时,Android Studio不显示任何内容。
我该如何解决这个问题?虽然这不是很重要的问题,但我想知道如何修复它。
当我在Android Studio上创建新项目时,没有遇到任何问题。然而,查看activity_main.xml
设计时,它显示了以下内容:
呈现问题:在呈现期间引发了“action_bar”异常。
当我从设计页面将sdk级别从22更改为21时,Android Studio不显示任何内容。
我该如何解决这个问题?虽然这不是很重要的问题,但我想知道如何修复它。
是的,我只需要在下拉菜单中调整Android级别。API级别22中的设计选项卡预览现在已经损坏了。我查看了错误的堆栈跟踪,似乎与需要alpha通道有关。我相信谷歌会在周一修复它。 :)
ActionBar已经被弃用,而Toolbar则是在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>
MyActivity extends AppCompatActivity
替代方案:
MyActivity extends ActionBarActivity // now deprecated
回到预览页面,清除缓存并刷新!
通过几天的挫败,我终于发现答案在我的应用模块build.gradle里!我将buildToolsVersion
从22
改为21.1.2
来正确解决了你遇到的确切异常。目前,与API 22:Android 5.1
有关的任何事情都会出现问题。希望Google能尽快修复。
更改build.gradle中的这些行可为我解决了这个问题:
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
}
创建一个新文件夹
values-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>
就是这样 :)
我通过重新构建项目或模块解决了它。
buildToolsVersion "22"
或者 targetSdkVersion 22
,因为它无法正确渲染。目前看来只有设置成 API 21 或更低版本才能正常渲染应用程序,因为我也遇到了同样的错误,只要我将其改回 21 就可以再次工作了。只需进入 build.gradle(module:app) 并将 API 改回最新版本的 API 21 即可。我通过修改build.gradle
(模块:app)中的buildToolsVersion "21.1.2"
来解决了这个问题。
不要使用buildToolsVersion "22"
。