适用于Android的Google ML套件条形码扫描器示例应用程序无法检测条形码

时间:2018-05-15 05:11:33

标签: android firebase firebase-mlkit

我尝试使用Google ML套件条形码检测功能。为此,我安装了谷歌提供的this example app。我还将我的应用程序连接到我的一个firebase项目。当我打开应用程序并转到条形码检测中的LivePreviewActivity时。相机启动但未检测到条形码! 根据快速入门指南,我还添加了

<meta-data
    android:name="com.google.firebase.ml.vision.DEPENDENCIES"
    android:value="barcode" />

在我的清单文件中。 我也包括了这个

FirebaseVisionBarcodeDetectorOptions options =
            new FirebaseVisionBarcodeDetectorOptions.Builder()
                    .setBarcodeFormats(
                            FirebaseVisionBarcode.FORMAT_CODE_128)
                    .build(); 

在BarcodeScanningProcessor.java文件中。

我得到的错误是:

  

条形码检测失败   com.google.firebase.ml.common.FirebaseMLException:等待   要下载的条形码检测模型。请稍等。

     

E / BarcodeNativeHandle:加载模块时出错

     

java.lang.ClassNotFoundException:没找到类   &#34; com.google.android.gms.chimera.DynamiteModuleInitializer&#34;

我已经在华为Mate 8和三星Galaxy S7 Edge这两款手机上安装了这个应用程序。该应用程序无法检测两部手机的条形码。

我的目标是从实时相机预览中检测/扫描条形码。 谢谢。

2 个答案:

答案 0 :(得分:5)

问题的第一部分&#34;等待下载条形码检测模型。请稍等。&#34;

如果设备上没有足够的存储空间或设备上没有数据连接,则会发生这种情况。清除Google Play服务的数据并重试应该有效:

Settings->Apps->Google Play Services->Storage->Manage Space->Clear All Data

在问题的清单部分的元数据标记中:

这有助于生产用例,即当最终用户从Play商店安装应用程序时,在安装时使用该元数据标签下载模型。但是,在开发过程中,您仍然需要等待模型下载一次。

关于Dynamite模块加载错误的问题的最后一部分(我没有足够的声誉来添加评论,所以在这里添加它):

您运行的Android版本和Google Play服务版本是什么?

答案 1 :(得分:2)

添加此依赖项。它对我有用。

implementation 'com.google.firebase:firebase-ml-vision-barcode-model:16.0.2'