Ionic 条形码扫描进程在 Android 中崩溃
Ionic Barcode Scanning Process Crash in Android
我用过cordova插件https://ionicframework.com/docs/native/barcode-scanner/
我需要扫描多个条形码,但在扫描或多次扫描后,Android 应用程序崩溃了。它在 IOS 台设备上运行良好。
这是崩溃日志:
11-20 18:45:39.923 30115-30115/com.xyz.optilockdev
E/BoostFramework: BoostFramework() : Exception_1 =
java.lang.ClassNotFoundException: Didn't find class
"com.qualcomm.qti.Performance" on path:
DexPathList[[],nativeLibraryDirectories=[/system/lib, /vendor/lib]]
11-20 18:45:53.258 30115-30115/com.xyx.optilockdev
E/ViewRootImpl@940705f[MainActivity]: ViewRootImpl #2 Surface is not
valid. 11-20 18:46:06.928 30115-30188/com.xyz.optilockdev
E/PluginManager: Uncaught exception from plugin
java.lang.IllegalArgumentException: Service not registered:
de.appplant.cordova.plugin.background.BackgroundMode@7c72892
at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1352)
at android.app.ContextImpl.unbindService(ContextImpl.java:1553)
at android.content.ContextWrapper.unbindService(ContextWrapper.java:723)
at de.appplant.cordova.plugin.background.BackgroundMode.stopService(BackgroundMode.java:256)
at de.appplant.cordova.plugin.background.BackgroundMode.disableMode(BackgroundMode.java:166)
at de.appplant.cordova.plugin.background.BackgroundMode.execute(BackgroundMode.java:107)
at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98)
at org.apache.cordova.PluginManager.exec(PluginManager.java:132)
at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59)
at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:323)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61) 11-20 18:46:45.624 30115-30115/com.xyz.optilockdev E/AndroidRuntime: FATAL
EXCEPTION: main Process: com.xyx.optilockdev, PID: 30115
java.lang.RuntimeException: Unable to resume activity
{com.xyz.optilockdev/com.xyz.optilockdev.MainActivity}:
java.lang.IllegalArgumentException: Service not registered:
de.appplant.cordova.plugin.background.BackgroundMode@7c72892
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3844)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3885)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) Caused by: java.lang.IllegalArgumentException: Service not registered:
de.appplant.cordova.plugin.background.BackgroundMode@7c72892
at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1352)
at android.app.ContextImpl.unbindService(ContextImpl.java:1553)
at android.content.ContextWrapper.unbindService(ContextWrapper.java:723)
at de.appplant.cordova.plugin.background.BackgroundMode.stopService(BackgroundMode.java:256)
at de.appplant.cordova.plugin.background.BackgroundMode.onResume(BackgroundMode.java:139)
at org.apache.cordova.PluginManager.onResume(PluginManager.java:264)
at org.apache.cordova.CordovaWebViewImpl.handleResume(CordovaWebViewImpl.java:450)
at org.apache.cordova.CordovaActivity.onResume(CordovaActivity.java:275)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1277)
at android.app.Activity.performResume(Activity.java:7115)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3821)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3885)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:67
根据OP提到的错误跟踪,这是后台插件的问题,而不是条码扫描插件的问题。
根据issue link,后台插件中的崩溃问题仍然存在,尚未解决。
暂时删除后台插件应该可以解决条码扫描时的崩溃问题。
我用过cordova插件https://ionicframework.com/docs/native/barcode-scanner/
我需要扫描多个条形码,但在扫描或多次扫描后,Android 应用程序崩溃了。它在 IOS 台设备上运行良好。
这是崩溃日志:
11-20 18:45:39.923 30115-30115/com.xyz.optilockdev E/BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib, /vendor/lib]] 11-20 18:45:53.258 30115-30115/com.xyx.optilockdev E/ViewRootImpl@940705f[MainActivity]: ViewRootImpl #2 Surface is not valid. 11-20 18:46:06.928 30115-30188/com.xyz.optilockdev E/PluginManager: Uncaught exception from plugin
java.lang.IllegalArgumentException: Service not registered: de.appplant.cordova.plugin.background.BackgroundMode@7c72892 at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1352) at android.app.ContextImpl.unbindService(ContextImpl.java:1553) at android.content.ContextWrapper.unbindService(ContextWrapper.java:723) at de.appplant.cordova.plugin.background.BackgroundMode.stopService(BackgroundMode.java:256) at de.appplant.cordova.plugin.background.BackgroundMode.disableMode(BackgroundMode.java:166) at de.appplant.cordova.plugin.background.BackgroundMode.execute(BackgroundMode.java:107) at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98) at org.apache.cordova.PluginManager.exec(PluginManager.java:132) at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59) at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:323) at android.os.Looper.loop(Looper.java:136) at android.os.HandlerThread.run(HandlerThread.java:61) 11-20 18:46:45.624 30115-30115/com.xyz.optilockdev E/AndroidRuntime: FATAL EXCEPTION: main Process: com.xyx.optilockdev, PID: 30115
java.lang.RuntimeException: Unable to resume activity {com.xyz.optilockdev/com.xyz.optilockdev.MainActivity}: java.lang.IllegalArgumentException: Service not registered: de.appplant.cordova.plugin.background.BackgroundMode@7c72892 at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3844) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3885) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) Caused by: java.lang.IllegalArgumentException: Service not registered: de.appplant.cordova.plugin.background.BackgroundMode@7c72892 at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1352) at android.app.ContextImpl.unbindService(ContextImpl.java:1553) at android.content.ContextWrapper.unbindService(ContextWrapper.java:723) at de.appplant.cordova.plugin.background.BackgroundMode.stopService(BackgroundMode.java:256) at de.appplant.cordova.plugin.background.BackgroundMode.onResume(BackgroundMode.java:139) at org.apache.cordova.PluginManager.onResume(PluginManager.java:264) at org.apache.cordova.CordovaWebViewImpl.handleResume(CordovaWebViewImpl.java:450) at org.apache.cordova.CordovaActivity.onResume(CordovaActivity.java:275) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1277) at android.app.Activity.performResume(Activity.java:7115) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3821) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3885)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:67
根据OP提到的错误跟踪,这是后台插件的问题,而不是条码扫描插件的问题。
根据issue link,后台插件中的崩溃问题仍然存在,尚未解决。
暂时删除后台插件应该可以解决条码扫描时的崩溃问题。