安卓Android java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

首先得知道Android的四大组件:活动(Activity)服务(Service)广播接收器(BroadcastReceiver)和内容提示器(Content Provider),其中活动是所有Android应用程序的门面,凡是在应用中看到的东西,都是放在活动中的。

查看报错信息如下:

起因:

想设置一个对话框式的活动,在AndroidMainfest.xml的<activity>标签的配置如下:

<activity android:name=”.DialogActivity”

android:theme=”@android:style/Theme.Dialog”/>

原因:

从错误提示中提到Theme.AppCompat theme,因为我们的activity一定是继承了兼容包中的类,

AndroidStudio帮我们创建的activity继承了ActionBarActivity,它来自android.support.v7.app.ActionBarActivity。

所以就要使用与其配合的AppCompat的theme才行。

解决方法有两种:

1: 将DialogActivity 改为直接继承Activity

2: 根据提示来使用AppCompat的theme

<activity android:name=”.DialogActivity”

android:theme=”@style/Theme.AppCompat.Dialog” />

重新运行,出现了理想的对话框式的活动。

问题不大,仅仅是一个小小的问题,但是重要的是分析问题和解决问题的过程,小问题解决了,以后遇到的大问题就可以分解成小问题,然后逐个解决。

 


关注公众号,了解更多it技术(it问答网

发表评论

电子邮件地址不会被公开。