Android在启动activity时闪退,可以认为是xml布局文件和Activity文件之间的连接问题,大致可以分为两类:activity找不到xml布局文件或xml布局文件关联activity失败;Android项目的主题设置出错;
-
activity找不到xml布局文件或xml布局文件关联activity失败
1、activity找不到xml布局文件
查看Activity中绑定布局文件的setContentView方法是否正确。
- xml布局文件关联activity失败
检查context是否存在问题。
-
Android项目的主题设置出错
在AndroidManifest.xml中设置如下:
<activity
android:name=".YourActivity"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
</activity>
如果你使用的是Light主题,则应该使用Theme.AppCompat.Light.DarkActionBar。如果你使用的是Dark主题,那么你应该使用Theme.AppCompat.Dark.LightActionBar。
这样,你的Activity就会使用这个主题了。如果你需要在所有Activity中使用这个主题,那么你可以在AndroidManifest.xml的application标签中设置主题:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
...
</application>
这样设置后,所有Activity都会默认使用这个主题。如果你只需要在某个Activity中使用这个主题,那么你应该在那个Activity的标签中单独设置。
请记住,如果你正在使用的是AppCompat v1.0以上版本,那么在AndroidManifest.xml中应该使用Theme.AppCompat而不是Theme.AppCompat.Light或Theme.AppCompat.Dark。例如:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat">
...
</application>