Ответ 1
альтернативный ответ @sbaar,
сохраните windowActionBar
до false
и добавьте windowNoTitle
, а затем установите true
.
т
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
Я попытался перенести проект из Eclipse в студию Android. Наконец, я могу запустить его, но в определенный момент я получил это исключение, и я ничего не нашел в Google об этом:
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,
сохраните windowActionBar
до false
и добавьте windowNoTitle
, а затем установите true
.
т
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
Удалите
<item name="windowActionBar">false</item>
из вашей темы, затем убедитесь, что вы наследуете тему .NoActionBar, затем установите свою панель инструментов как обычно.
Убедитесь, что ваша тема является дочерней от Theme.AppCompat.NoActionBar
, а затем в styles.xml
:
<style name="MyMaterialTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowNoTitle">true</item>
...
</style>
Btw, это новая проблема для библиотеки поддержки 22.1.
Проверьте, вызываете ли вы setContentView() после super.onCreate(), а не раньше. Это помогло в моем случае.
Используйте этот родительский элемент в Style.xml Родитель = "Theme.AppCompat.Light.NoActionBar"
Убедитесь, что
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
находятся на вершине всего, что это работает для меня.... удачи
в моем случае я не изменился на .NoActionBar Theme. я просто удаляю андроидный префикс из этого элемента.
<item name="windowActionBar">false</item>
и ошибка исчезнет.
добавить зависимость от 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, а не AppCompatActivity в моих классах Activity, как того требует новая версия библиотеки совместимости. Я попробую еще раз.
Просто используйте это в своем стиле .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 ActionBarActivity
на Main extends Activity
. Это сработало для меня.
В моем случае я ищу ответ @rewrihitesh, и я замечаю, что я инвертированные элементы упорядочивают. Изменение
setContentView(R.layout.activity_test);
super.onCreate(savedInstanceState);
to
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
Исправить мою проблему.
Надеюсь, что это поможет!
если вы добавили <item name="windowActionBar">false</item>
,
то вам нужно добавить
<item name="windowNoTitle">true</item>
чтобы решить проблему.