首页 > 解决方案 > 每次我在模拟器上运行时,应用程序都会停止

问题描述

当我向其添加菜单搜索栏时,我的应用程序不断停止,下面是 LOGcat。

2021-03-17 12:59:15.222 21794-21794/com.example.pesticideapplication E/AndroidRuntime:致命异常:主进程:com.example.pesticideapplication,PID:21794 java.lang.NullPointerException:尝试调用虚拟方法' void android.widget.SearchView.setOnQueryTextListener(android.widget.SearchView$OnQueryTextListener)' 在 com.example.pesticideapplication.MainActivity.onCreateOptionsMenu(MainActivity.java:46) 在 android.app.Activity.onCreatePanelMenu(Activity .java:4074) 在 androidx.fragment.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:325) 在 androidx.appcompat.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:94) 在 androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback。 onCreatePanelMenu(AppCompatDelegateImpl.java:3070) 在 androidx.appcompat.app。AppCompatDelegateImpl.preparePanel(AppCompatDelegateImpl.java:1895) 在 androidx.appcompat.app.AppCompatDelegateImpl.doInvalidatePanelMenu(AppCompatDelegateImpl.java:2176) 在 androidx.appcompat.app.AppCompatDelegateImpl$2.run(AppCompatDelegateImpl.java:271) 在 android.os。 Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread .java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit .main(ZygoteInit.java:930)AppCompatDelegateImpl$2.run(AppCompatDelegateImpl.java:271) 在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop( Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run( RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)AppCompatDelegateImpl$2.run(AppCompatDelegateImpl.java:271) 在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop( Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run( RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 运行(RuntimeInit.java:492)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 运行(RuntimeInit.java:492)

我在 mainactivity 中的搜索代码

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu,menu);
    MenuItem menuItem = menu.findItem(R.id.search);
    final SearchView searchView = (SearchView) menuItem.getActionView();

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            adapter.getFilter().filter(searchView.toString());

            return false;
        }
    });

    return super.onCreateOptionsMenu(menu);
}

标签: javaandroid-studio

解决方案


推荐阅读