KotlinNullPointerException:在onCreateOptionsMenu里面找不到searchView; 安卓

我需要与SearchView的MainActivity,它会抛出KotlinNullPointerException:在onCreateOptionsMenu; 这里是我的代码:

options_menu.xml

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/search" android:actionViewClass="android.widget.SearchView" android:icon="@android:drawable/ic_menu_search" app:showAsAction="collapseActionView|ifRoom" android:title="@string/search" /> </menu> 

MainActivity.java

 import android.text.TextUtils import android.view.Menu import android.widget.AdapterView import android.widget.SearchView import android.widget.Toast ... import kotlinx.android.synthetic.main.activity_main.* import android.app.SearchManager import android.content.Context override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) logd("onCreate MainActivity") setSupportActionBar(toolbar) ... } ... override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.options_menu, menu) val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager val searchView = menu.findItem(R.id.search).actionView as? SearchView searchView!!.setSearchableInfo(searchManager.getSearchableInfo(componentName)) return true } 

我正在使用这样的自定义工具栏,但我认为问题不在这里

更改android:actionViewClass="android.widget.SearchView"app:actionViewClass="android.widget.SearchView"它将正常工作。

问题出在app:actionViewClass

 <item android:id="@+id/itemSearch" android:icon="@drawable/ic_search" android:title="Search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="collapseActionView|ifRoom" /> 

你必须让ActivityViewClass在Activity中是一样的

 import android.support.v7.widget.SearchView 

MainActivity是从AppCompatActivity扩展而来的,AppCompatActivity也是这样导入的

 import android.support.v7.app.AppCompatActivity 

我希望在这里支持大家

最好的祝福