无法解决错误Theme.AppCompat主题(或后代)

时间:2017-02-16 18:46:36

标签: android

我查看了其他SO帖子并进行了相应配置。但我仍然在某些Android设备上看到了这个问题(4.3.1)。它有75%的时间。

You need to use a Theme.AppCompat theme (or descendant) with this activity.

以下代码有什么问题?

BaseActivity extends android.support.v7.appAppCompatActivity



<application
    android:allowBackup="true"
    android:theme="@style/AppTheme" >

所有活动(崩溃的活动)都使用应用程序标签中的AppTheme。一项活动使用:

    <activity
        android:name=".Activities.EntryActivity"
        android:noHistory="true"
        android:theme="@style/SplashTheme" >

我没有任何其他style.xml。

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>

来自Android:

<style name="Theme.AppCompat.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
  

java.lang.RuntimeException:无法启动活动   ComponentInfo {} Activities.MyAcitivity:   java.lang.IllegalStateException:您需要使用Theme.AppCompat   主题(或后代)与此活动。 1点   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)   2点   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)   3在android.app.ActivityThread.access $ 600(ActivityThread.java:141)   4点   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1256)   5在android.os.Handler.dispatchMessage(Handler.java:99)6 at   android.os.Looper.loop(Looper.java:137)7 at   android.app.ActivityThread.main(ActivityThread.java:5103)8 at   java.lang.reflect.Method.invokeNative(Native Method)9 at   java.lang.reflect.Method.invoke(Method.java:525)10 at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)   11在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)   12在com.android.internal.os.ZygoteInit.main(Native Method)13 at   dalvik.system.NativeStart.main(Native Method)14引起:   java.lang.IllegalStateException:您需要使用Theme.AppCompat   主题(或后代)与此活动。 15点到   android.support.v7.app.AppCompatDelegateImplV7.i(SourceFile:340)16 at   android.support.v7.app.AppCompatDelegateImplV7.h(SourceFile:309)17 at   android.support.v7.app.AppCompatDelegateImplV7.setContentView(的SourceFile:273)   18点到   android.support.v7.app.AppCompatActivity.setContentView(的SourceFile:136)   19 at .Commons.BaseActivity.onCreate(SourceFile:236)20 at   .MyActivity.onCreate(SourceFile:24)21 at   android.app.Activity.performCreate(Activity.java:5133)22 at   android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)   23点   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)   24 ... 12更多25 java.lang.IllegalStateException:你需要使用一个   具有此活动的Theme.AppCompat主题(或后代)。 26点   android.support.v7.app.AppCompatDelegateImplV7.i(SourceFile:340)27 at   android.support.v7.app.AppCompatDelegateImplV7.h(SourceFile:309)28 at   android.support.v7.app.AppCompatDelegateImplV7.setContentView(的SourceFile:273)   29点   android.support.v7.app.AppCompatActivity.setContentView(的SourceFile:136)   30在Activities.Commons.BaseActivity.onCreate(SourceFile:236)31 at   Activities.Accounts.AppLaunchActivity.onCreate(SourceFile:24)32 at   android.app.Activity.performCreate(Activity.java:5133)33 at   android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)   34点   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)   35点   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)   36在android.app.ActivityThread.access $ 600(ActivityThread.java:141)   37点   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1256)   38在android.os.Handler.dispatchMessage(Handler.java:99)39 at   android.os.Looper.loop(Looper.java:137)40 at   android.app.ActivityThread.main(ActivityThread.java:5103)41 at   java.lang.reflect.Method.invokeNative(Native Method)42 at   java.lang.reflect.Method.invoke(Method.java:525)43 at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)   44在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)   45 at com.android.internal.os.ZygoteInit.main(Native Method)46 at   dalvik.system.NativeStart.main(原生方法)

1 个答案:

答案 0 :(得分:0)

试试这个:

res / values / styles.xml中的

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

现在在你的清单中:

<application
    android:theme="@style/AppTheme">   //base Application theme
    <activity
        android:name=".Activities.EntryActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">   //Activity Theme
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>