未找到Google Vision条形码库

时间:2015-08-19 15:16:19

标签: android google-play-services barcode google-vision android-vision

我尝试使用Google Play服务(Vision)中的新功能将QR码扫描添加到我的应用程序中。但是当我运行我的应用程序时,我得到了这个:

I/Vision﹕ Supported ABIS: [armeabi-v7a, armeabi]
D/Vision﹕ Library not found: /data/data/com.google.android.gms/files/com.google.android.gms.vision/barcode/libs/armeabi-v7a/libbarhopper.so
I/Vision﹕ Requesting barcode detector download.

我按照教程声明了条形码依赖:

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

我尝试重新安装应用并重新启动手机,没有任何帮助。

使用Google Play Services 7.8,设备上安装的版本为7.8.11。

compile 'com.google.android.gms:play-services-vision:7.8.0'

用于创建条形码检测器的代码:

boolean initBarcodeDetector() {
    final BarcodeTrackerFactory barcodeTrackerFactory = new BarcodeTrackerFactory(this);
    final MultiProcessor<Barcode> multiProcessor = new MultiProcessor.Builder<>(barcodeTrackerFactory)
            .build();
    barcodeDetector = new BarcodeDetector.Builder(this)
            .build();
    barcodeDetector.setProcessor(multiProcessor);

    if (barcodeDetector.isOperational() == false) {
        Toast.makeText(this, R.string.barcode_not_operational, Toast.LENGTH_LONG).show();
        finish();
        return false;
    }

    return true;
}

上述关闭返回false并完成活动,因为barcodeDetector.isOperational()返回false

7 个答案:

答案 0 :(得分:9)

Google已确认他们即将修复的错误,这可能会阻止您在某些情况下使用此条形码/面部检测库(链接here):

  
      
  • 由于该服务存在严重错误,Mobile Vision所需的服务现已停用。这将阻止没有的用户   已使用面部或条形码检测使用这些功能。我们   建议您不要在应用中添加新的Mobile Vision功能   这个问题已修复。
  •   
  • 对于已使用Mobile Vision功能的应用,请检查FaceDetector.isOperational()或BarcodeDetector.isOperational()   在使用面部或条形码检测器之前确认检测器准备就绪。
  •   

这也是在Google的github样本回购中报告的一些问题中写的:

https://github.com/googlesamples/android-vision/issues

示例(here):

  

新版本的GMSCore(v9)存在一个已知问题   刚刚今天发布。

答案 1 :(得分:6)

在清除缓存并释放一些空间后,它开始工作了。我只有&#34;只有&#34; 400mb可用空间,没有任何错误信息表明。

答案 2 :(得分:3)

根据此处的文档: https://developers.google.com/android/reference/com/google/android/gms/vision/package-summary ,此处: https://developers.google.com/android/reference/com/google/android/gms/vision/Detector#isOperational()

文档:

  

public boolean isOperational()

     

指示检测器是否具有所有必需的依赖项   可在本地使用,以便进行检测。

     

首次安装应用时,可能需要下载   所需文件。如果返回false,那些文件还没有   可用。通常这个下载在应用程序中处理   安装时间,但不保证这一点。在某些情况下下载   可能已被推迟。

     

如果您的代码添加了处理器,则表示检测器   操作状态也用detectorIsOperational()表示   方法。您可以在应用程序中检查此内容,因为它会处理检测   结果,并且可以在适当的时候将此状态传达给用户。

     

返回•如果检测器可操作则返回true,如果依赖性则返回false   下载正在进行中

  

public boolean detectorIsOperational()

     

如果探测器正在运行,则返回true,否则返回false   操作。在非操作情况下,探测器将返回否   结果

     

启动应用时,探测器可能暂时无法运行   第一次,如果需要下载以获取相关联   检测所需的库和模型文件。

您的设备似乎需要通过Google Play服务完成下载库,以便您的应用程序立即正常运行。

基于Google Samples(来源中的评论):

        // Note: The first time that an app using the barcode or face API is installed on a
        // device, GMS will download a native libraries to the device in order to do detection.
        // Usually this completes before the app is run for the first time.  But if that
        // download has not yet completed, then the above call will not detect any barcodes
        // and/or faces.
        //
        // isOperational() can be used to check if the required native libraries are currently
        // available.  The detectors will automatically become operational once the library
        // downloads complete on device.

https://github.com/googlesamples/android-vision/blob/master/visionSamples/multi-tracker/app/src/main/java/com/google/android/gms/samples/vision/face/multitracker/MultiTrackerActivity.java#L156

答案 3 :(得分:3)

我也经历过这种情况,在我的一个测试设备上找不到视觉库,尽管控制台在应用程序的每次启动时都显示了库的请求,但从未完成。我测试了Nexus 4,5摩托罗拉X2,三星S 2-6和其他各种设备,S5是唯一有问题的设备。有足够的可用空间和超过2Gb,在硬重置设备后,扫描按预期立即工作。

答案 4 :(得分:1)

我也有同样的经历。 (抱歉,我无法评论添加我的案例,因为我只有1个代表) 我正在使用Nexus 5(2013)和marshmallow(6.0)。 我开始使用1GB的可用空间并且没有工作,并且没有以2gb的速度工作。 我最终释放了另外1gb(所以3gb可用空间)然后它工作了。

答案 5 :(得分:0)

Google Play Services v9.2中恢复了移动视觉操作 https://developers.google.com/vision/release-notes#google_play_services_92

  

发行说明

     

以下是Mobile Vision API的更新,对应于   Google Play服务版本。

     

Google Play Services 9.2

     

错误修复

     

Google Play Services v9.2中恢复了移动视觉操作。   拥有新版本的用户将能够下载所需的文件   并利用Mobile Vision提供的应用程序功能。该   Google Play服务更新还包括配置更新   Mobile Vision的部分修复。通常每次更新一次   几天,但它也会发生在手机重启(虽然这样   受限制,因此无法保证更新配置)。   由于文件下载错误仍然可能发生(例如,如果存在   我们建议使用Google Play服务   开发人员调用FaceDetector.isOperational()或   BarcodeDetector.isOperational()检查检测器准备情况和   相应地降低功能操作。

答案 6 :(得分:0)

2020年9月: 这个版本有它:

implementation 'com.google.android.gms:play-services-vision:20.1.2'