2015-02-17 152 views
2

我一直在尝试实施Material Design主题,关注these instructions下面的棒棒糖材料设计支持 - 崩溃

  • 我不使用ToolBar(必须我?)
  • 我所有的活动延伸ActionBarActivity。
  • 在整个项目中使用getSupportActionBar()
  • 我正在编译和定位到gradle中的API 21(最小值是API 15)。
  • 我的<application>标签包含android:theme="@style/AppTheme"
  • 运行棒棒糖设备上的应用程序(与特定v21类似的主题作品)。

我styles.xml:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat"> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 

</style> 

<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> 
    <item name="displayOptions">useLogo|showHome</item> 
    <item name="logo">@drawable/home_page_logo</item> 
    <item name="background">@color/actionbar_background_color</item> 
    <item name="textColor">@color/white</item> 
    <item name="titleTextStyle">@style/MyActionBarTextStyle</item> 
</style> 

不管我试过了,应用程序崩溃的第二启动我的主要活动上onCreate()与此崩溃日志:

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:151) 
at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:138) 
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123) 

这儿还有没有人遇到这个问题?有什么建议可能会导致这种情况?

编辑: 这绝对是我的styles.xml主题中的东西。如果我强制应用程序使用默认的Theme.AppCompat主题,它的工作原理。 什么可能导致主题失败?我验证了ActionBar属性没有使用“android:”。还要别的吗?

+0

@PearsonArtPhoto耶...再次验证。所有模块都针对v21。 – 2015-02-17 20:51:45

+0

@PearsonArtPhoto干净,重建,gradle同步......基本上所有的 – 2015-02-17 20:55:42

回答

6

解决...

我的jar库中的2个显然有生成values.xml其中包含样式AppThemeAppBaseTheme。 我只验证了我们的依赖关系模块,因为jar库不应该声明应用程序主题,特别是没有默认的名称。

发布的答案之前,我加入到我的AndroidManifest.xml<application> tools:replace="android:theme",并宣布新的主题,假设它会工作和我的应用程序将覆盖任何其他主题。

解决方案最终,愚蠢的,因为它是为我自己AppThemeAppBaseTheme重命名为不同的名字,现在它的工作原理。 花费在这么小的修复上的时间。希望这会为其他人留出一些时间。

0

尝试从第一行中删除 “@风格/” 在styles.xml让您有:

<style name="AppBaseTheme" parent="Theme.AppCompat"> 
+0

都尝试过......同样的崩溃。 – 2015-02-17 21:12:23

2

parentTheme.AppCompat@style/Theme.AppCompat

使用@style/您将使用Android API 21的样式,并且它必须是AppCompat库的样式。

编辑:

Widget.AppCompat

EDIT2大概同样的事情:

这样

<style name="AppBaseTheme" parent="Theme.AppCompat"> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 

</style> 

<style name="MyActionBar" parent="Widget.AppCompat.ActionBar.Solid"> 
    <item name="displayOptions">useLogo|showHome</item> 
    <item name="logo">@drawable/home_page_logo</item> 
    <item name="background">@color/actionbar_background_color</item> 
    <item name="textColor">@color/white</item> 
    <item name="titleTextStyle">@style/MyActionBarTextStyle</item> 
</style> 
+0

谢谢。试过这一点,对于所有的父母。 – 2015-02-17 21:18:48

+0

这是超级怪异的。明天上班我会检查我们的应用 – Budius 2015-02-17 21:19:48

+0

怎么样非常奇怪......我开始认为它与一个坏的jar库有关,它会生成一个带有Holo主题的values.xml。 – 2015-02-17 21:26:02

相关问题