Error java.lang.NullPointerException:尝试对MainActivity.onCreateOptionsMenu处的空对象引用调用接口方法“”android.view.View android.view.MenuItem.getActionView()“”
工具栏上搜索视图的代码
Java
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);
SearchManager searchManager = (SearchManager)
getSystemService(Context.SEARCH_SERVICE);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) getActionView(searchItem);
ComponentName componentName = new
ComponentName(context,MainActivity.class);
searchView.setSearchableInfo(searchManager.getSearchableInfo(componentName));}菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="Search" />XML
<?xml version="1.0" encoding="utf-8"?>
<searchable
xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"
android:layout_height="wrap_content"
android:layout_width="match_parent"
/>发布于 2018-07-01 07:04:48
-keep android.support.v7.widget.SearchView { *;} -keep接口android.support.** { *;}用Theme.Base.AppCompat代替-keep
SearchView searchView = (SearchView) getActionView(searchItem); withSearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
Theme.AppCompat这一行检查上面的步骤和反馈是否有助于解决您的问题。
https://stackoverflow.com/questions/51118993
复制相似问题