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

错误:

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


将一个Activity设置成窗口的样式。
AndroidManifest.xml 中定义 Activity的地方一句话
android:theme="@android:style/Theme.Dialog"
android:theme="@android:style/Theme.Translucent"就变成半透明

<li class="alt"><span><span class="tag"><</span><span class="tag-name">activity</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="attribute">android:name</span><span>=</span><span class="attribute-value">".MainActivity"</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="attribute">android:theme</span><span>=</span><span class="attribute-value">"@style/Theme.AppCompat.Light.NoActionBar"</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="attribute">android:label</span><span>=</span><span class="attribute-value">"@string/app_name"</span><span>&nbsp;</span><span class="tag">></span><span>&nbsp;&nbsp;</span></span></li>


这样修改后报上面错误。

原因:
从错误提示中提到Theme.AppCompat theme,这是因为我们的activity一定是继承了兼容包中的类,
比如我这里就无意中继承了ActionBarActivity,它来自android.support.v7.app.ActionBarActivity。
所以就要使用与其配合的AppCompat的theme才行。

解决:
根据提示来使用AppCompat的theme
<activity  
    android:name=".MainActivity"  
    android:theme="@style/Theme.AppCompat.Dialog"  
    android:label="@string/app_name" >  





你可能感兴趣的:(java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a)