使用SDK 22预览时,我的所有布局都出现以下渲染问题。
填写类android.support.v7.widget.Toolbar时出错。
java.lang.NoSuchFieldError:View_theme
就我而言,问题是styles.xml
:
带渲染问题的XML:
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar" />
<!-- Base application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:textColorPrimary">@color/primary_text</item>
</style>
</resources>
XML没有问题:
<resources>
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar" />
<!-- Base application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:textColorPrimary">@color/primary_text</item>
</style>
</resources>
请注意我必须在父引用中添加@style/
。这似乎解决了我的问题(重建后)。
问题,这是我的错误还是错误?很多教程都没有提到它(Including Official Android Page)
摇篮:
compileSdkVersion 22
buildToolsVersion '22.0.1'
minSdkVersion 15
targetSdkVersion 22
classpath 'com.android.tools.build:gradle:1.1.0'
最后注意:我没有使用工具栏。
答案 0 :(得分:4)
编辑:
从另一个SO question读取。
如果您的活动延伸AppCompactActivity
,则您的父主题应为
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar" />
如果使用ActionBarActivity
,则主题应为
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar" />
我认为差异是故意的,而不是错误。请随时 纠正我,如果我错了,因为我无法从任何地方同样地证明这一点 爱好。
OLD:
要将工具栏用作操作栏,您需要做的第一件事就是禁用装饰提供的操作栏。最简单的方法是让您的主题从Theme.AppCompat.NoActionBar(或轻量级变体)扩展。
使用:
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar" />
答案 1 :(得分:2)
就我而言,解决方案就像
一样简单将@style
添加到父主题
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
从android.support.v7.widget.
Toolbar
从app:theme
移至android:theme
<Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />