El método de llamada getFocusAreas () causa java.lang.NumberFormatException en HTC ONE

Mientras trabajaba con la API de la cámara me encontré con un problema en un dispositivo HTC ONE. He comprobado esto en LG G2 y pasó sin un error. He rastreado el problema hasta una sola línea:

List<Camera.Area> areas = camera.getParameters().getFocusAreas(); 

El método getParameters () funciona por sí mismo. Así que el problema está en getFocusArea (). Este es un fragmento de LogCat.

 07-24 18:29:13.716 W/ActivityMain(28952): java.lang.NumberFormatException: Invalid int: " 0" 07-24 18:29:13.716 W/ActivityMain(28952): at java.lang.Integer.invalidInt(Integer.java:137) 07-24 18:29:13.716 W/ActivityMain(28952): at java.lang.Integer.parse(Integer.java:374) 07-24 18:29:13.716 W/ActivityMain(28952): at java.lang.Integer.parseInt(Integer.java:365) 07-24 18:29:13.716 W/ActivityMain(28952): at java.lang.Integer.parseInt(Integer.java:331) 07-24 18:29:13.716 W/ActivityMain(28952): at android.hardware.Camera$Parameters.splitInt(Camera.java:4321) 07-24 18:29:13.716 W/ActivityMain(28952): at android.hardware.Camera$Parameters.splitArea(Camera.java:4428) 07-24 18:29:13.716 W/ActivityMain(28952): at android.hardware.Camera$Parameters.getFocusAreas(Camera.java:4088) 

Esta es la información del dispositivo.

 build.board: APQ8064 build.bootloader: 1.57.0000 build.brand: htc build.cpu_abi: armeabi-v7a build.cpu_abi2: armeabi build.device: m7 build.display: KOT49H release-keys build.fingerprint: htc/htc_europe/m7:4.4.2/KOT49H/334166.10:user/release-keys build.hardware: m7 build.host: abm019 build.id: KOT49H build.manufacturer: HTC build.model: HTC One build.product: htc_europe build.radio: unknown build.serial: FA35WW934521 build.tags: release-keys build.time: 1399302943000 build.type: user build.user: buildteam version.codename: REL version.incremental: 334166.10 version.release: 4.4.2 version.sdk_int: 19 

Así que, ¿puede alguien explicar por qué se trata de esto y si hay una solución?

Parece que esto es un error en la API que sucede sólo en algunos dispositivos. Esto sólo ocurre si aún no se han enviado áreas al llamar a setFocusAreas ()

La solución es simple. Llame al menos una vez setFocusAreas (). Probablemente usted quiere hacer esto en algún tipo de función de configuración / inicialización, o para mantener una bandera para rastrear si ha llamado a esta función al menos una vez.

Consulte este enlace para obtener más información sobre el error.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.