Android 活动启动时随机抛出非法状态异常
当我运行我的活动时,我得到一个Android 活动启动时随机抛出非法状态异常,android,android-studio,android-manifest,android-theme,android-studio-2.0-beta5,Android,Android Studio,Android Manifest,Android Theme,Android Studio 2.0 Beta5,当我运行我的活动时,我得到一个非法状态异常:你需要在随机时间使用一个Theme.AppCompat主题。我只需要重建项目,并在下一次运行时启动活动,但在一些运行之后,我再次遇到异常 我检查了我的应用程序和活动主题是否继承自Theme.AppCompat。我的所有活动都扩展了FragmentActivity 我在API 22(Android 5.1.1)上遇到了一个例外,我正在运行Android Studio 2.0 Beta 5 编辑 我使用的是AndroidStudio 1.5,但没有出现错误
非法状态异常:你需要在随机时间使用一个Theme.AppCompat主题。我只需要重建项目,并在下一次运行时启动活动,但在一些运行之后,我再次遇到异常
我检查了我的应用程序和活动主题是否继承自Theme.AppCompat
。我的所有活动都扩展了FragmentActivity
我在API 22(Android 5.1.1)上遇到了一个例外,我正在运行Android Studio 2.0 Beta 5
编辑
我使用的是AndroidStudio 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>
<!-- 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>
我想知道我是否应该将此报告为错误或我是否做错了什么。在您的清单中,您缺少minSdk和targetSdk条目。设置最小和目标sdk版本。还要确保包括支持库。如果这不起作用,也可以尝试全息主题,看看是否会出现错误 “我的所有活动都扩展了FragmentActivity”--将它们更改为扩展AppCompatActivity
,或者停止使用Theme.AppCompat
Theme.AppCompat
供AppCompatActivity
使用,而不是FragmentActivity
或Activity
。FragmentActivity和Theme.AppCompat--导致问题。我在这里找到了第二个公共软件解决方案。我在AppCompatActivity上也遇到了同样的问题。实际上,我在看到问题后从AppCompatActivity进行了更改。因此,当我更改清单中的某些内容时,错误不会在下次启动时显示。我想知道Android Studio新的快速构建功能是否对此负责。minSdk和targetSdk是由gradle设置的。包括支持库。如果我能避免使用全息照片,那也太好了。
public class BaseActivity extends FragmentActivity {
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
}