2015-02-17 153 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

相關問題