2017-05-06 119 views
1

我有一個包含下面的代碼片段:NullPointerException異常APK

SearchView searchView; 

    @Override 
    public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) { 
     inflater.inflate(R.menu.searchship, menu); 

     MenuItem searchItem = menu.findItem(R.id.action_search); 

     searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
     searchView.setOnSearchClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        menu.findItem(R.id.action_sort).setVisible(false); 

      } 
     }); 

如果我運行這個從AndroidStudio然後一切都很好。但大家誰從Play商店中下載應用程序崩潰:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SearchView.setOnSearchClickListener(android.view.View$OnClickListener)' on a null object reference 
+0

您是否使用的ProGuard ?你測試了你的發行版嗎? (另外:每個應用程序都是「簽名」的,或者你無法安裝它) –

+0

是的,這就是我的意思,如果它被混淆了,它不起作用。 – JDoeKnought

回答

1

以下是我發現:

我要補充

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

到proguard.pro