Describe the bug
It crashed when switching from Trime to another input method. (切换至其他键盘时出错。)
To Reproduce
Steps to reproduce the bug:
Switch to Trime.
Switch to another input method/keyboard (e.g. Gboard).
See bug.
Expected behavior
No crash.
Log
I/InputMethodService( 6121): onDestroy
D/InputMethodService( 6121): notifyKeyboardClosed
D/AndroidRuntime( 6121): Shutting down VM
--------- beginning of crash
E/AndroidRuntime( 6121): FATAL EXCEPTION: main
E/AndroidRuntime( 6121): Process: com.osfans.trime, PID: 6121
E/AndroidRuntime( 6121): java.lang.RuntimeException: Unable to stop service com.osfans.trime.TrimeImeService@17818ca: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.osfans.trime.ime.keyboard.InputFeedbackManager.releaseSoundPool()' on a null object reference
E/AndroidRuntime( 6121): at android.app.ActivityThread.handleStopService(ActivityThread.java:5280)
E/AndroidRuntime( 6121): at android.app.ActivityThread.-$$Nest$mhandleStopService(Unknown Source:0)
E/AndroidRuntime( 6121): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2449)
E/AndroidRuntime( 6121): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime( 6121): at android.os.Looper.loopOnce(Looper.java:226)
E/AndroidRuntime( 6121): at android.os.Looper.loop(Looper.java:313)
E/AndroidRuntime( 6121): at android.app.ActivityThread.main(ActivityThread.java:8741)
E/AndroidRuntime( 6121): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 6121): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
E/AndroidRuntime( 6121): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
E/AndroidRuntime( 6121): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.osfans.trime.ime.keyboard.InputFeedbackManager.releaseSoundPool()' on a null object reference
E/AndroidRuntime( 6121): at com.osfans.trime.ime.core.Trime.onFinishInputView(Trime.java:872)
E/AndroidRuntime( 6121): at android.inputmethodservice.InputMethodService.finishViews(InputMethodService.java:3168)
E/AndroidRuntime( 6121): at android.inputmethodservice.InputMethodService.doFinishInput(InputMethodService.java:3262)
E/AndroidRuntime( 6121): at android.inputmethodservice.InputMethodService.onDestroy(InputMethodService.java:1927)
E/AndroidRuntime( 6121): at com.osfans.trime.ime.lifecycle.LifecycleInputMethodService.onDestroy(LifecycleInputMethodService.kt:41)
E/AndroidRuntime( 6121): at com.osfans.trime.ime.core.Trime.onDestroy(Trime.java:603)
E/AndroidRuntime( 6121): at android.app.ActivityThread.handleStopService(ActivityThread.java:5260)
E/AndroidRuntime( 6121): ... 9 more
E/CustomActivityOnCrash( 6121): App has crashed, executing CustomActivityOnCrash's UncaughtExceptionHandler
E/CustomActivityOnCrash( 6121): java.lang.RuntimeException: Unable to stop service com.osfans.trime.TrimeImeService@17818ca: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.osfans.trime.ime.keyboard.InputFeedbackManager.releaseSoundPool()' on a null object reference
E/CustomActivityOnCrash( 6121): at android.app.ActivityThread.handleStopService(ActivityThread.java:5280)
E/CustomActivityOnCrash( 6121): at android.app.ActivityThread.-$$Nest$mhandleStopService(Unknown Source:0)
E/CustomActivityOnCrash( 6121): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2449)
E/CustomActivityOnCrash( 6121): at android.os.Handler.dispatchMessage(Handler.java:106)
E/CustomActivityOnCrash( 6121): at android.os.Looper.loopOnce(Looper.java:226)
E/CustomActivityOnCrash( 6121): at android.os.Looper.loop(Looper.java:313)
E/CustomActivityOnCrash( 6121): at android.app.ActivityThread.main(ActivityThread.java:8741)
E/CustomActivityOnCrash( 6121): at java.lang.reflect.Method.invoke(Native Method)
E/CustomActivityOnCrash( 6121): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
E/CustomActivityOnCrash( 6121): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
E/CustomActivityOnCrash( 6121): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.osfans.trime.ime.keyboard.InputFeedbackManager.releaseSoundPool()' on a null object reference
E/CustomActivityOnCrash( 6121): at com.osfans.trime.ime.core.Trime.onFinishInputView(Trime.java:872)
E/CustomActivityOnCrash( 6121): at android.inputmethodservice.InputMethodService.finishViews(InputMethodService.java:3168)
E/CustomActivityOnCrash( 6121): at android.inputmethodservice.InputMethodService.doFinishInput(InputMethodService.java:3262)
E/CustomActivityOnCrash( 6121): at android.inputmethodservice.InputMethodService.onDestroy(InputMethodService.java:1927)
E/CustomActivityOnCrash( 6121): at com.osfans.trime.ime.lifecycle.LifecycleInputMethodService.onDestroy(LifecycleInputMethodService.kt:41)
E/CustomActivityOnCrash( 6121): at com.osfans.trime.ime.core.Trime.onDestroy(Trime.java:603)
E/CustomActivityOnCrash( 6121): at android.app.ActivityThread.handleStopService(ActivityThread.java:5260)
E/CustomActivityOnCrash( 6121): ... 9 more
E/CustomActivityOnCrash( 6121): Failed when resolving the restart activity class via getLaunchIntentForPackage, stack trace follows!
E/CustomActivityOnCrash( 6121): java.lang.ClassNotFoundException: com.osfans.trime.PrefLauncherAlias
E/CustomActivityOnCrash( 6121): at java.lang.Class.classForName(Native Method)
E/CustomActivityOnCrash( 6121): at java.lang.Class.forName(Class.java:454)
E/CustomActivityOnCrash( 6121): at java.lang.Class.forName(Class.java:379)
E/CustomActivityOnCrash( 6121): at cat.ereza.customactivityoncrash.CustomActivityOnCrash.getLauncherActivity(CustomActivityOnCrash.java:648)
E/CustomActivityOnCrash( 6121): at cat.ereza.customactivityoncrash.CustomActivityOnCrash.guessRestartActivityClass(CustomActivityOnCrash.java:602)
E/CustomActivityOnCrash( 6121): at cat.ereza.customactivityoncrash.CustomActivityOnCrash.lambda$install$0(CustomActivityOnCrash.java:177)
E/CustomActivityOnCrash( 6121): at cat.ereza.customactivityoncrash.CustomActivityOnCrash$$ExternalSyntheticLambda0.uncaughtException(Unknown Source:2)
E/CustomActivityOnCrash( 6121): at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
E/CustomActivityOnCrash( 6121): at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
E/CustomActivityOnCrash( 6121): at java.lang.Thread.dispatchUncaughtException(Thread.java:2306)
E/CustomActivityOnCrash( 6121): Caused by: java.lang.ClassNotFoundException: com.osfans.trime.PrefLauncherAlias
E/CustomActivityOnCrash( 6121): ... 10 more
I/Process ( 6121): Sending signal. PID: 6121 SIG: 9
Smartphone (please complete the following information):
Device: Galaxy M33 5G (SM-M336B)
OS: Android 13
Theme: trime
Version: 3.2.11
Build info:
Builder: null
Build Time: 2023-03-04 06:11 UTC
Build Version Name: v3.2.11-0-g46f3862c
Git Hash: 46f3862c
Git Branch: null
Git Repo: https://github.com/osfans/trime
Describe the bug It crashed when switching from Trime to another input method. (切换至其他键盘时出错。)
To Reproduce Steps to reproduce the bug:
Expected behavior No crash.
Log
Smartphone (please complete the following information):