Виджет поиска не работает в release apk

У меня странная проблема (по крайней мере для меня). Мое приложение отлично работает с debug apk. Но когда я создаю release apk, тогда он показывает ошибку в searchwidget. Я использую библиотеку поддержки 'com.android.support:appcompat-v7:21.0.3'

Это мой код

@Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater mi = getMenuInflater(); mi.inflate(R.menu.searchmenu, menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); final MenuItem searchItem = menu.findItem(R.id.searchwidget); final SearchView searchView = (SearchView) MenuItemCompat .getActionView(searchItem); if(null!=searchManager ) { searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); } searchView.setIconifiedByDefault(false); SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextChange(String newText) { // this is your adapter that will be filtered Programs.this.adapter.getFilter().filter(newText); return true; } @Override public boolean onQueryTextSubmit(String query) { // this is your adapter that will be filtered Programs.this.adapter.getFilter().filter(query); return true; } }; searchView.setOnQueryTextListener(textChangeListener); return super.onCreateOptionsMenu(menu); } 

Мой код меню

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:title="@string/search" android:id="@+id/searchwidget" app:showAsAction="always|collapseActionView" android:icon="@drawable/ic_action_search" app:actionViewClass="android.support.v7.widget.SearchView"></item> </menu> 

Сначала я думал, что это проблема proguard, поэтому я использовал это

 -keepclassmembers class android.support.v7.widget.SearchView{ } 

Но все та же проблема.

Может ли кто-нибудь объяснить, почему это происходит?

Вы должны добавить

 -keep class android.support.v7.widget.SearchView { *; } 

В файл proguard-rules.pro.

Как-то это связано с обфускацией proguard, вероятно, ошибкой в ​​SearchView. (Некоторые версии затронуты, некоторые нет)

Отключить progaurd или сделать его «ложным» из build.gradle

Он увеличит размер, но будет выполнен.

Это сработало для меня