我从Google Play控制台收到此报告。你能告诉我我关注哪种方法吗?或任何可能的线索?
java.lang.NullPointerException:
at com.abc.keyboard.SoftKeyboard.access$000 (SoftKeyboard.java)
or .access$1102 (SoftKeyboard.java)
or .access$300 (SoftKeyboard.java)
or .makeKeyboards (SoftKeyboard.java)
or .setClickedTabForID (SoftKeyboard.java)
or .updateCandidatesAccordingString (SoftKeyboard.java)
or .updateShiftKeyState (SoftKeyboard.java)
at com.abc.keyboard.SoftKeyboard.onStartInputView (SoftKeyboard.java)
at android.inputmethodservice.InputMethodService.showWindowInner (InputMethodService.java:2176)
at android.inputmethodservice.InputMethodService.showWindow (InputMethodService.java:2071)
at android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInput (InputMethodService.java:660)
at android.inputmethodservice.IInputMethodWrapper.executeMessage (IInputMethodWrapper.java:215)
at com.android.internal.os.HandlerCaller$MyHandler.handleMessage (HandlerCaller.java:37)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:145)
at android.app.ActivityThread.main (ActivityThread.java:6946)
at java.lang.reflect.Method.invoke (Method.java)
at java.lang.reflect.Method.invoke (Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1199)
这里最常用的方法是:
private void makeKeyboards() {
DisplayMetrics displaymetrics = new DisplayMetrics();
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
if(wm != null) { wm.getDefaultDisplay().getMetrics(displaymetrics);}
int screenWidth = displaymetrics.widthPixels;
if (screenWidth == mLastDisplayWidth) return;
mLastDisplayWidth = screenWidth;
keyboard_bang1 = new LatinKeyboard(this, R.xml.qwerty_bang_1);
keyboard_bang2 = new LatinKeyboard(this, R.xml.qwerty_bang_2);
keyboard_bang3 = new LatinKeyboard(this, R.xml.qwerty_bang_3);
keyboard_eng = new LatinKeyboard(this, R.xml.qwerty_eng);
keyboard_symbol = new LatinKeyboard(this, R.xml.qwerty_symbol_1);
}