Google 条形码扫描 ML Kit:某些设备上的活动崩溃

fru*_*ops 5 java android barcode-scanner capacitor google-mlkit

更新:

也许自2023 年 3 月 21 日更新以来它现在可以工作,也许不行。如果您想使用它,可以在文档中阅读有关它的更多信息。

再次注意,我们还没有测试它现在是否有效。我们必须迅速决定如何让条形码扫描再次工作。因此,我们重构了自定义条码扫描电容插件来com.google.mlkit:barcode-scanning:17.1.0代替使用。有关它的更多信息请参见此处。这需要更多的努力,因为你必须自己实现 UI,并且花哨的扫描动画消失了,但它确实有效,而且似乎更快。


我们com.google.android.gms:play-services-code-scanner:16.0.0-beta3与自定义 Capacitor 插件结合使用来扫描 EAN-13 和 EAN-8 等条形码,但在某些设备上,每当用户尝试打开 Google 的条形码扫描仪 UI 时,该活动似乎都会崩溃。

这是logcat 的错误日志:

win=Window{f8c052d u0 com.[redacted]/com.google.mlkit.vision.codescanner.internal.GmsBarcodeScanningDelegateActivity} destroySurfaces: appStopped=true cleanupOnResume=false win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=4 caller=com.android.server.wm.ActivityRecord.destroySurfaces:6529 com.android.server.wm.ActivityRecord.destroySurfaces:6510 com.android.server.wm.ActivityRecord.notifyAppStopped:6574 com.android.server.wm.ActivityRecord.activityStopped:7162 com.android.server.wm.ActivityClientController.activityStopped:258 android.app.IActivityClientController$Stub.onTransact:613 com.android.server.wm.ActivityClientController.onTransact:136
Run Code Online (Sandbox Code Playgroud)

处理扫描 UI 的代码:

win=Window{f8c052d u0 com.[redacted]/com.google.mlkit.vision.codescanner.internal.GmsBarcodeScanningDelegateActivity} destroySurfaces: appStopped=true cleanupOnResume=false win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=4 caller=com.android.server.wm.ActivityRecord.destroySurfaces:6529 com.android.server.wm.ActivityRecord.destroySurfaces:6510 com.android.server.wm.ActivityRecord.notifyAppStopped:6574 com.android.server.wm.ActivityRecord.activityStopped:7162 com.android.server.wm.ActivityClientController.activityStopped:258 android.app.IActivityClientController$Stub.onTransact:613 com.android.server.wm.ActivityClientController.onTransact:136
Run Code Online (Sandbox Code Playgroud)

版本

    minSdkVersion = 23
    compileSdkVersion = 33
    targetSdkVersion = 33
    androidxActivityVersion = '1.6.1'
    androidxAppCompatVersion = '1.6.1'
    androidxCoordinatorLayoutVersion = '1.2.0'
    androidxCoreVersion = '1.9.0'
    androidxFragmentVersion = '1.5.5'
    coreSplashScreenVersion = '1.0.0-rc01'
    androidxWebkitVersion = '1.6.0'
    junitVersion = '4.13.2'
    androidxJunitVersion = '1.1.5'
    androidxEspressoCoreVersion = '3.5.1'
    cordovaAndroidVersion = '10.1.1'
Run Code Online (Sandbox Code Playgroud)

我们已将 Android Webview 以及应用程序内的所有实现包和 Capacitor 插件build.gradle文件更新到最新版本。我们不知道导致错误的原因,因为错误描述非常模糊。我们在任何地方都找不到解决办法。该错误发生在 Galaxy Tab S7 上,之前曾出现过该问题。它突然停止工作,可能是因为我们不知道的内部更新。我们还使用三星 Galaxy A51 进行了测试,但它只能在该设备上运行。

小智 0

对我有用的解决方案是从“Google Play 服务”中删除更新

我是如何做到这一点的故事:昨天我正在使用 github 上存在的一个项目测试该库,一切正常

今天我尝试直接从一个新项目中执行此操作(感谢我昨天使用的存储库,我刚刚遇到“com.google.android.gms:play-services-code-scanner”),并且收到了您发布的错误我找不到解决方案(三星S20 Ultra),然后我想到了“android webview”类似的错误,该错误使许多应用程序无法使用,解决方案是删除所有更新并且一切正常,所以我尝试了相同的方法到“Google Play服务”,事实证明,现在如果我打开相机。

我希望我的解决方案能够帮助您,我认为这对于最终用户来说并不是最干净的。