调用方法getFocusAreas()会在HTC ONE上导致java.lang.NumberFormatException

时间:2014-07-24 18:30:13

标签: android

使用相机API时,我在设备HTC ONE上遇到了问题。我已经在LG G2检查了这个,它没有出错。 我已将问题追溯到一行:

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

方法getParameters()通过它自己工作。所以问题在于getFocusArea()。 这是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)

这是设备信息。

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

那么,任何人都可以解释为什么会出现这种情况并且是否有解决方法?

1 个答案:

答案 0 :(得分:3)

似乎这是API中仅在某些设备中发生的错误。 只有通过调用 setFocusAreas()

尚未提交任何区域时才会发生这种情况

解决方法很简单。至少调用一次 setFocusAreas ()。可能你想在某种类型的设置/初始化函数中执行此操作,或者如果至少调用此函数一次,则保留一个标记来跟踪。

有关该错误的详细信息,请参阅this link