java.lang.IllegalArgumentException:AppCompat不支持当前的主题function

我试图从Eclipse的项目迁移到Android工作室。 最后,我能够运行它,但是在某个时候,我得到了这个exception,而我在谷歌里没有发现任何东西:

04-22 00:08:15.484 9891-9891/hu.illion.kwindoo E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{hu.illion.kwindoo/hu.illion.kwindoo.activity.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117) ... Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) at hu.illion.kwindoo.activity.MainActivity.onCreate(MainActivity.java:73) at android.app.Activity.performCreate(Activity.java:5047) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117) ... 

73. MainActivity的一行是:

 setContentView(R.layout.activity_main); 

如果可以,请指教我。

替代@ sbaar的答案,

保持windowActionBarfalse并添加windowActionBar ,并将其设置为true

  <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> 

去掉

 <item name="windowActionBar">false</item> 

从你的主题,然后确保你是从.NoActionBar主题inheritance,然后设置你的工具栏像正常。

确保您的主题是Theme.AppCompat.NoActionBarTheme.AppCompat.NoActionBar ,然后在styles.xml

 <style name="MyMaterialTheme" parent="Theme.AppCompat.NoActionBar"> <item name="windowNoTitle">true</item> ... </style> 

顺便说一下,这是支持库22.1的一个新问题。

检查是否在super.onCreate()之后调用setContentView(),而不是之前。 这有助于我的情况。

在Style.xml中使用此父项parent =“Theme.AppCompat.Light.NoActionBar”

在我的情况下,我没有改变.NoActionBar主题。 我只是从这个项目中删除android前缀。

 <item name="windowActionBar">false</item> 

错误消失。

确保

 super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 

在这一切为我工作的顶部….祝你好运

像这样添加对gradle的依赖

 compile 'com.android.support:appcompat-v7:21.0.3' 

我解决了我的主要活动扩展AppCompatActivity的问题:)

当我将库版本从22.0.0升级到22.1.1时,我遇到了同样的问题,并通过回退到以前的版本来修复它:com.android.support:appcompat-v7:22.0.0并返回使用ActionBarActivity,在我的Activity类中没有AppCompatActivity,这是新版本兼容性库所要求的。 我稍后再试。

只需在style.xml中使用它,不需要其他编辑

  <style name="AppTheme" parent="Theme.AppCompat"> <!-- theme customizations --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

请勿将任何内容添加到活动文件中,请将其保留

 public class Main extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 

在Java类中更改Main extends ActionBarActivityMain extends Activity 。 它为我工作。

在我的情况下,我寻找@rewrihitesh答案,我注意到我倒序元素顺序 。 从改变

 setContentView(R.layout.activity_test); super.onCreate(savedInstanceState); 

 super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); 

解决我的问题。

希望能帮助到你 !!

如果添加了<item name="windowActionBar">false</item> ,则需要添加

 <item name="windowNoTitle">true</item> 

解决问题。