我尝试将项目从Eclipse迁移到Android工作室。最后我能够运行它,但在某个时刻我得到了这个例外,我在谷歌中没有发现任何关于此事的内容:
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);
如果可以,请告诉我。
答案 0 :(得分:224)
替代@ sbaar的回答,
将windowActionBar
保留到false
并添加windowNoTitle
并将其设置为true
。
即
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
答案 1 :(得分:39)
删除
<item name="windowActionBar">false</item>
从您的主题,然后确保您继承自.NoActionBar主题,然后像平常一样设置您的工具栏。
答案 2 :(得分:29)
确保您的主题是来自Theme.AppCompat.NoActionBar
的儿童,然后是styles.xml
:
<style name="MyMaterialTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowNoTitle">true</item>
...
</style>
顺便说一句,这是支持库22.1的新问题。
答案 3 :(得分:16)
检查你是否在super.onCreate()之后调用setContentView(),而不是之前。这有助于我的情况。
答案 4 :(得分:5)
在Style.xml中使用此父级 父=&#34; Theme.AppCompat.Light.NoActionBar&#34;
答案 5 :(得分:3)
确保
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
对我来说是最重要的......祝你好运
答案 6 :(得分:3)
在我的情况下,我没有改变.NoActionBar主题。我只是从这个项目中删除了android前缀。
<item name="windowActionBar">false</item>
并且错误消失了。
答案 7 :(得分:1)
像这样添加依赖于gradle
compile 'com.android.support:appcompat-v7:21.0.3'
答案 8 :(得分:1)
我通过扩展AppCompatActivity的主要Activity解决了这个问题:)
答案 9 :(得分:0)
当我将库版本从22.0.0升级到22.1.1并通过回退到先前版本修复它时遇到了同样的问题:com.android.support:appcompat-v7:22.0.0并返回到使用ActionBarActivity,而不是我的Activity类中的AppCompatActivity,这是兼容性库的较新版本所要求的。我稍后再试。
答案 10 :(得分:0)
只需在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);
}
}
答案 11 :(得分:0)
在Java类中将Main extends ActionBarActivity
更改为Main extends Activity
。它对我有用。
答案 12 :(得分:0)
在我的情况下,我寻找@rewrihitesh的答案,我注意到我倒置元素顺序。改变
setContentView(R.layout.activity_test);
super.onCreate(savedInstanceState);
到
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
解决我的问题。
希望它有所帮助!!
答案 13 :(得分:0)
如果您添加了<item name="windowActionBar">false</item>
,
那么,你需要添加
<item name="windowNoTitle">true</item>
解决问题。
答案 14 :(得分:0)
我有点同样的问题,如下所述从我的syles.xml中删除了android:
;
<!-- caused crash -->
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<!-- didn't cause crash -->
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>