生成签名的apk后,操作栏视图(共享操作提供程序和searchview)崩溃.当我从
Android工作室调试应用程序时它正在工作,但当我生成签名的apk并安装应用程序到设备我得到这样的错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SearchView.setQueryHint(java.lang.CharSequence)' on a null object reference
at tm.veriloft.ertir.ui.SearchActivity.onCreateOptionsMenu(UnkNown Source)
at android.app.Activity.onCreatePanelMenu(Activity.java:2820)
at android.support.v4.app.o.onCreatePanelMenu(UnkNown Source)
at android.support.v7.app.e.a(UnkNown Source)
at android.support.v7.app.g.a(UnkNown Source)
at android.support.v7.widget.as.a(UnkNown Source)
at android.support.v7.internal.a.a.j(UnkNown Source)
at android.support.v7.internal.a.b.run(UnkNown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
要么
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.ah.a(android.content.Intent)' on a null object reference
at tm.veriloft.ertir.ui.BlogViewActivity.onCreateOptionsMenu(UnkNown Source)
at android.app.Activity.onCreatePanelMenu(Activity.java:2820)
at android.support.v4.app.o.onCreatePanelMenu(UnkNown Source)
at android.support.v7.app.e.a(UnkNown Source)
at android.support.v7.app.g.a(UnkNown Source)
at android.support.v7.widget.as.a(UnkNown Source)
at android.support.v7.internal.a.a.j(UnkNown Source)
at android.support.v7.internal.a.b.run(UnkNown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
我正在使用支持库和工具栏的最新版本. (通过设置setSupportActionBar(mToolbar)).
SearchView xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ertir="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:title="@string/title_activity_search"
ertir:showAsAction="always"
ertir:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
Java的
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search,menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) searchItem.getActionView();
mSearchView.setQueryHint(getString(R.string.search_hint));
mSearchView.setFocusable(true);
mSearchView.setIconified(false);
mSearchView.requestFocusFromTouch();
mSearchView.setonQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
mSearchView.clearFocus(); //Hide keyboard
search(query,searchTypeArray.get(searchTypeSpinner.getSelectedItemPosition()).getType());
return false;
}
@Override
public boolean onQueryTextChange(String query) {
if (searchTypeArray.get(searchTypeSpinner.getSelectedItemPosition()).getType().equals("blogs"))
searchAfter(1100,query,searchTypeArray.get(searchTypeSpinner.getSelectedItemPosition()).getType());
else
search(query,searchTypeArray.get(searchTypeSpinner.getSelectedItemPosition()).getType());
return false;
}
});
return true;
}
我怎样才能解决这个问题?如上所述,我只有在签署apk后才会收到错误.
解决方法
这是因为您没有适当地配置您的progaurd.在buildTypes和’release’下的build.gradle中,将runProguard更改为true,以runProguard为false并生成已烧录的APK并进行测试.如果它运作良好,请尝试学习适当配置progaurd
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。