Chế độ xem thanh tác vụ (chia sẻ nhà cung cấp hành động và tìm kiếm) gặp sự cố sau khi tạo apk đã ký. Khi tôi gỡ lỗi ứng dụng từ studio android nó làm việc nhưng khi tôi tạo apk ký và cài đặt ứng dụng vào điện thoại tôi nhận được lỗi như thế này:Lỗi sau khi tạo 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)
hoặc
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)
Tôi đang sử dụng phiên bản cuối cùng của thư viện hỗ trợ và thanh công cụ. (bằng cách thiết lập 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;
}
Làm thế nào tôi có thể sửa lỗi này? Như đã nói ở trên, tôi nhận được lỗi chỉ sau khi ký apk.
bản sao có thể có của [Ngoại lệ con trỏ rỗng là gì và cách khắc phục sự cố này?] (Http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and- Làm thế nào-do-i-fix-it) – 323go
Tìm hiểu những gì 'null' và chắc chắn rằng nó không phải là. – 323go
@ 323go tôi biết rằng '(SearchView) searchItem.getActionView();' trả về null. nhưng tôi không biết tại sao tôi nhận được lỗi này sau khi tạo apk..không phải khi gỡ lỗi – alashow