Lollipop下面的材料设计支持 - 崩溃

Lio*_*luz 2 android android-appcompat android-theme material-design

我一直在尝试按照这些说明实现Material Design主题.

  • 我没用ToolBar(我必须吗?)
  • 我的所有活动都扩展了ActionBarActivity.
  • 使用getSupportActionBar()整个项目.
  • 我正在使用gradle编译并定位到API 21(最小化是API 15).
  • 我的<application>标签包含android:theme="@style/AppTheme"
  • 在Lollipop设备上运行应用程序(具有特定的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>
Run Code Online (Sandbox Code Playgroud)

无论我尝试了什么,应用程序崩溃第二次我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)
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这个问题?关于可能导致这种情况的任何建议?

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

Lio*_*luz 8

解决了...

我的罐子库的2显然已经生成 values.xml一个包含样式两者的AppThemeAppBaseTheme.我只验证了我们的依赖模块,因为jar库不应该声明应用程序主题,特别是不能使用默认的名称.

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

最终,愚蠢的解决方案是重命名我自己的AppThemeAppBaseTheme不同的名称,现在它的工作原理.花在这样一个微不足道的修复上的时间.希望这会为其他人留出一些时间.