Intereting Posts
Java.lang.RuntimeException: не удается создать обработчик внутри потока, который не вызвал Looper.prepare () SmsManager.sendTextMessage не работает GetSupportFragmentManager (). GetFragments () показывает ошибку времени компиляции Исключение: обратные вызовы должны устанавливать границы родительских объектов в populateNodeForVirtualViewId () Какова основная цель методов setTag () getTag () View? Google в приложении покупки получить список продуктов Как реализовать связь Activity-Service Android Compass указывает на мое местоположение вместо северного Ошибка аннотаций Android с Android Studio Update 1.0 Android.content.res.Resources $ NotFoundException: Идентификатор ресурса строки # 0x0 C: \ Program Files \ MSBuid \ Novell \ Novell.MOnoDroid.Csharp.targets не найден Как изменить индикатор HomeAsUp на новой панели инструментов AppCompat? Android: привязка данных из базы данных к CheckBox в ListView? API распознавания лиц для Java Android Правильный способ хранения ключа шифрования для базы данных SqlCipher

Обновлен до AppCompat v22.1.0 и теперь получает IllegalArgumentException: AppCompat не поддерживает текущие функции темы

Я только что обновил свое приложение, чтобы использовать недавно выпущенный v22.1.0 AppCompat, и теперь я получаю следующее исключение, когда открываю приложение.

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) 

Как это исправить?

Solutions Collecting From Web of "Обновлен до AppCompat v22.1.0 и теперь получает IllegalArgumentException: AppCompat не поддерживает текущие функции темы"

AppCompat теперь более строг в отношении того, чего он ожидает в флагах окна темы, более точно сопоставляя то, что вы получите от фреймворка.

Основная причина этого заключается в поддержке AppCompatDialogs, которую мы также добавляем в этом выпуске. Они сильно используют флаг windowNoTitle , который ранее не уделял особого внимания AppCompat.

Поэтому, чтобы исправить проблему, у вас есть два варианта:

Легкий способ – просто использовать Theme.AppCompat.NoActionBar качестве родительской темы. Это всегда будет правильно.

Если вы не можете этого сделать (возможно, вам нужно поддерживать панель действий и панель действий), вы должны сделать следующее:

 <style name="MyTheme" parent="Theme.AppCompat"> ... </style> <style name="MyTheme.NoActionBar"> <!-- Both of these are needed --> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

Теперь вы должны вернуться в путь.

Те, кто все еще получают ошибку после всех этих исправлений.

Наследуем от

 Theme.AppCompat.Light.NoActionBar 

И не использовать

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

Тогда вы не получите никакой ошибки.

я добавил

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

Но этого было недостаточно. Наконец, перемещение super.onCreate перед setContentView в Activity – исправлено мое сообщение 🙂

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.v2_main_dash); ... 

Просто используйте это в вашем style.xml в style.xml значений-v21. Никакое другое редактирование не требуется

  <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); } }