【发布时间】:2015-11-02 17:01:19
【问题描述】:
在扩展 AppCompatActivity 而不是 Activity 后,我的项目出现以下错误:
java.lang.NullPointerException:尝试调用虚拟方法 '空白 android.widget.SearchView.setSearchableInfo(android.app.SearchableInfo)' 在空对象引用上
我点击了这个链接[this][1],但它对我不起作用。
请给我一些关于我做错了什么的建议。
这是我的搜索代码:
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
这是菜单xml
<item
android:id="@+id/search"
android:app:actionViewClass="android.widget.SearchView"
android:icon="@drawable/ic_search"
android:app:showAsAction="collapseActionView|always"
android:title="@string/Search"/>
【问题讨论】:
-
像其他线程建议的那样,修复你的 menu.xml:使用自定义命名空间和支持实现,app:actionViewClass="android.support.v7.widget.SearchView"/>
-
似乎您没有按照链接问题的答案进行操作。
-
当我写
app:actionViewClass="android.support.v7.widget.SearchView"/>Eclipse 给我错误Attribute is missing the Android namespace prefix所以我必须在app 之前写android 前缀。 -
Eclipse 已经过时了。您应该切换到 Android Studio,因为它会建议您使用简单的 Alt + enter 添加这一行
xmlns:app="http://schemas.android.com/apk/res-auto"。 -
感谢@Sufian
Attribute is missing the Android namespace prefix错误消失了。之后,它在searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));上给了我空指针执行
标签: android android-appcompat searchview