Biblioteca de códigos de barras de Google Vision no encontrada

Estoy intentando utilizar la nueva función de Google Play Services (Vision) para agregar el escaneo de código QR a mi aplicación. Pero cuando ejecuto mi aplicación me sale esto:

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. 

He declarado la dependencia del código de barras según el tutorial:

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

Intenté reinstalar la aplicación y reiniciar el teléfono, nada ayuda.

Con Google Play Services 7.8, la versión instalada en el dispositivo es 7.8.11.

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

Código utilizado para crear el detector de código de barras:

 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; } 

El cierre anterior devuelve false y finaliza la actividad porque barcodeDetector.isOperational() devuelve false .

Google ha confirmado un error que se arreglará pronto, lo que impide que en algunos casos para utilizar esta biblioteca de código de barras / cara-detección (enlace aquí ):

  • Un servicio requerido por Mobile Vision ahora está inhabilitado debido a un error grave en ese servicio. Esto evitará que los usuarios que no hayan utilizado ya la detección de la cara o del código de barras utilicen esas características. No recomendamos agregar nuevas funciones de Mobile Vision a su aplicación hasta que este problema esté solucionado.
  • Para aplicaciones que ya utilizan las funciones de Mobile Vision, compruebe que FaceDetector.isOperational () o BarcodeDetector.isOperational () confirmen la preparación del detector antes de usar el detector de código de barras o de cara.

También está escrito en algunos temas reportados en Google Github muestra de repo:

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

Ejemplo ( aquí ):

Hay un problema conocido con la nueva versión de GMSCore (v9) que se acaba de publicar hoy.

Comenzó a trabajar después de haber borrado la caché y liberado un poco de espacio. Yo tenía "sólo" 400 MB de espacio libre y no había ningún mensaje de error que indicaría eso.

También he experimentado esto, la biblioteca de visión no se pudo encontrar en uno de mis dispositivos de prueba, aunque la consola mostró una solicitud de la biblioteca en cada inicio de la aplicación, pero nunca terminó. He probado en Nexus 4,5 Motorola X2, Samsung S 2-6 y varios otros dispositivos, el S5 fue el único dispositivo con el problema. Había bastante espacio libre con sobre 2Gb, después de reajustar difícilmente el dispositivo la exploración trabajada inmediatamente según lo previsto.

Sobre la base de la documentación aquí: https://developers.google.com/android/reference/com/google/android/gms/vision/package-summary y aquí: https://developers.google.com/android/reference/ / Google / android / gms / vision / Detector # isOperational ()

Documentación:

Public boolean isOperational ()

Indica si el detector tiene todas las dependencias necesarias disponibles localmente para realizar la detección.

Cuando se instala una aplicación por primera vez, puede ser necesario descargar los archivos necesarios. Si esto devuelve false, esos archivos aún no están disponibles. Por lo general, esta descarga se realiza en el momento de la instalación de la aplicación, pero esto no está garantizado. En algunos casos la descarga puede haberse retrasado.

Si su código ha agregado un procesador, también se indica una indicación del estado operativo del detector con el método detectorIsOperational (). Puede comprobar esto en su aplicación, ya que procesa los resultados de la detección y puede transmitir este estado al usuario, si es apropiado.

Devuelve • true si el detector está operativo, falso si la descarga de dependencia está en curso

y

Public boolean detectorIsOperational ()

Devuelve true si el detector está operativo, falso si no está operativo. En el caso no operativo, el detector no devolverá ningún resultado.

Un detector puede no estar operativo durante un tiempo al iniciar una aplicación por primera vez, si se requiere una descarga para obtener la biblioteca asociada y los archivos de modelo necesarios para realizar la detección.

Parece que tu dispositivo debe terminar de descargar las bibliotecas a través de Google Play Services para que tu aplicación funcione de inmediato.

Basado en Google Samples (un comentario en la fuente):

  // 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. 

. Java # L156

También tuve la misma experiencia. (Lo siento, no puedo comentar para agregar mi caso porque sólo tengo 1 representante) Estoy usando Nexus 5 (2013) con marshmallow (6.0). Empecé con 1 GB de espacio libre y no funcionó y no funcionó en 2 GB. Acabé liberando otro 1 GB (por lo que 3 GB de espacio libre), entonces funcionó.

El funcionamiento de Mobile Vision se ha restaurado en Google Play Services v9.2 https://developers.google.com/vision/release-notes#google_play_services_92

Notas de la versión

Estas son las actualizaciones de la API de Mobile Vision, correspondientes a las versiones de Google Play Services.

Servicios de Google Play 9.2

Corrección de errores

La operación de Mobile Vision se restablece en Google Play Services v9.2. Los usuarios con la nueva versión podrán descargar los archivos necesarios y hacer uso de las funciones de la aplicación impulsadas por Mobile Vision. La actualización de Google Play Services también incluye una actualización de configuración como parte de la solución para Mobile Vision. Normalmente esto se actualiza una vez cada varios días, pero también se producirá en el reinicio del teléfono (aunque esto se estrangula, por lo que no se garantiza la actualización de la configuración). Dado que los errores de descarga de archivos aún pueden ocurrir (por ejemplo, si no hay suficiente espacio de almacenamiento en el dispositivo), aconsejamos a los desarrolladores de Google Play Services que llamen a FaceDetector.isOperational () o BarcodeDetector.isOperational () para comprobar la disponibilidad del detector y degradar la operación de las funciones en consecuencia.

  • Android Vision - Reduce la ventana de seguimiento de códigos de barras
  • En Android google vision OCR cómo puedo determinar la exactitud del reconocimiento
  • ¿Por qué barcodedetector y las API asociadas son tan poco fiables?
  • Android Google Play Service Visión Explorador de códigos de barras Biblioteca no encontrada
  • Tamaño de vista previa para el escáner de código de barras de la visión api
  • Nueva visión API - Tamaño de imagen
  • Android cameraSource.stop () que hace que la aplicación se congele
  • Cómo utilizar la API de visión móvil con TextureView y la cámara
  • Vista de la computadora Android JavaCV OpenCV FastCV comparación
  • Área de detección de límites en Vision API
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.