IllegalStateException在活动启动时被抛出

时间:2016-02-22 12:03:28

标签: android android-studio android-manifest android-theme android-studio-2.0-beta5

当我开展活动时,我会随机获得IllegalStateException: You need to use a Theme.AppCompat theme。我只需要重建项目并在下次运行时启动活动,但在一些运行后,我再次得到异常。

我检查过我的应用和活动主题是否继承自Theme.AppCompat。我的所有活动都延伸到FragmentActivity

我在API 22(Android 5.1.1)上获得了例外,而我正在运行Android Studio 2.0 Beta 5

修改

我使用的是Android Studio 1.5,但我没有收到错误消息。似乎在AS 2.0上,我的活动中的super引用AppCompatActivity而不是继承的类FragmentActivity。我无法理解这种行为

的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="eu.heyway.heywayandroid">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.NoActionBar"
        android:name=".HeyWayApplication">
        <activity
            android:name=".login.FacebookLoginActivity"
            android:theme="@style/AppTheme.TriangleBackground">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".configuration.ConfigurationActivity"
            android:label="@string/title_activity_configuration"
            android:theme="@style/AppTheme.TriangleBackground" />
        <activity android:name=".home.HomeActivity"
            android:theme="@style/AppTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

styles.xml

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowBackground">@color/colorPrimary</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

    <style name="AppTheme.TriangleBackground" parent="AppTheme">
        <item name="android:windowBackground">@drawable/background_full</item>
    </style>

我的所有活动都扩展了这个课程:

public class BaseActivity extends FragmentActivity {

    @Override
    protected void attachBaseContext(Context newBase) {
        super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
    }
}

我想知道我是否应该将此报告为错误或者我做错了什么。

1 个答案:

答案 0 :(得分:0)

在您的清单中,您缺少 minSdk targetSdk 条目。设置min和target sdk版本。另外,请确保包含支持库。如果那没有成功,也可以尝试使用Holo主题并查看是否出现错误。