Android Google Play Service Visión Explorador de códigos de barras Biblioteca no encontrada

Utilizo la API visible de Google Play Services para la lectura de códigos de barras. He probado un código del ejemplo oficial de CodeLabs que no funciona en algunos dispositivos (en absoluto). Aquí está el mensaje de Logcat:

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. D/AndroidRuntime﹕ Shutting down VM E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: PID: 24921 java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 at android.util.SparseArray.valueAt(SparseArray.java:273) at MainActivity$1.onClick(MainActivity.java:50) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

El problema es porque el dispositivo no puede encontrar la biblioteca /data/data/com.google.android.gms/files/com.google.android.gms.vision/barcode/libs/armeabi-v7a/libbarhopper.so , y después de eso Tengo una excepción porque el dispositivo no detecta el código de barras (la lista de códigos de barras está vacía).

Aquí está el código:

  BarcodeDetector detector = new BarcodeDetector.Builder(getApplicationContext()).build(); Bitmap bitmap = ((BitmapDrawable) mBarcodeImageView.getDrawable()).getBitmap(); Frame frame = new Frame.Builder().setBitmap(bitmap).build(); SparseArray<Barcode> barcodes = detector.detect(frame); Barcode thisCode = barcodes.valueAt(0); TextView txtView = (TextView) findViewById(R.id.txtContent); txtView.setText(thisCode.rawValue); 

El servicio de Google Play se actualiza en todos los dispositivos.

¿Alguien puede ayudarme? ¿Cómo puedo solucionarlo?

Sé que es tarde, pero alguien puede obtener el error y todavía encontrar esta información útil.

Su aplicación se está ArrayIndexOutOfBoundsException debido a ArrayIndexOutOfBoundsException . He aquí por qué:

SparseArray<Barcode> barcodes = detector.detect(frame); Almacena todos los data detectados en la matriz de barcodes de barcodes . Cuando no se encuentra ningún dato, crea una matriz en blanco y está intentando obtener el valor en el índice 0 desde una matriz en blanco.

Debe comprobar primero el tamaño de la matriz antes de intentar recuperar los datos. Cambie su código a lo siguiente:

 int totalCodes = barcodes.size(); if (totalCodes > 0) { Barcode thisCode = barcodes.valueAt(0); TextView txtView = (TextView) findViewById(R.id.txtContent); txtView.setText(thisCode.rawValue); } 

O usted debe utilizar un bucle para obtener todos los elementos en la matriz de barcodes de barcodes .

El método de detect devuelve un SparseArray que contiene sólo las claves de los valores, debe iterar a través de los resultados como esto:

 for (int i = 0; i < barcodes.size(); i++) { Barcode barcode = barcodes.get(barcodes.keyAt(i)); String value = barcode.displayValue } 
  • Descargar rstp stream en android
  • ¿Hay un plugin de estudio de Android que convertir código a diagramas UML
  • Android.App.Activity - el paquete no existe
  • Preferencias de Android en evento onclick
  • Cambiar la profundidad de bits de Bitmap
  • Android Market - Error al subir el archivo APK
  • ¿Eclipse Paho Mqtt Client persiste en todos los mensajes publicados publicados hasta que son ACKed para ser entregados por el corredor bajo QoS-2?
  • ArrayIndexOutOfBoundsException error en el análisis de datos JSON
  • ¿Cómo usar jarsigner para firmar un apk?
  • Saco de jabón de marco simple y cuerpo
  • Cómo reproducir AsyncTask de Android en Java código puro
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.