Nullpointerexception 仅在已签名的 APK 中
Nullpointerexception only in signed 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,那么一切都很好。但是从 playstore 下载该应用程序的每个人都崩溃了:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SearchView.setOnSearchClickListener(android.view.View$OnClickListener)' on a null object reference
这是我发现的:
我要补充
-keep class android.support.v7.widget.SearchView { *; }
到proguard.pro
下面的代码有效
-keep class android.support.v7.widget.SearchView { *; }
我有一个包含以下代码的片段:
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,那么一切都很好。但是从 playstore 下载该应用程序的每个人都崩溃了:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SearchView.setOnSearchClickListener(android.view.View$OnClickListener)' on a null object reference
这是我发现的:
我要补充
-keep class android.support.v7.widget.SearchView { *; }
到proguard.pro
下面的代码有效
-keep class android.support.v7.widget.SearchView { *; }