在使用相机 API 时,我在 HTC ONE 设备上遇到了一个问题。我在 LG G2 上检查过这个并且没有错误。 我已将问题追查到一行:
List<Camera.Area> areas = camera.getParameters().getFocusAreas();
方法 getParameters() 自行运行。所以问题出在getFocusArea()。 这是来自 LogCat 的 fragment 。
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
那么,任何人都可以解释为什么会出现这种情况以及是否有解决方法?
最佳答案
似乎这是 API 中的错误,仅在某些设备中发生。 只有在尚未通过调用 setFocusAreas()
提交任何区域时才会发生这种情况解决方法很简单。至少调用一次 setFocusAreas()。可能您想在某种类型的设置/初始化函数中执行此操作,或者保留一个标志以跟踪您是否至少调用了一次此函数。
参见 this link有关该错误的更多信息。
关于android - 在 HTC ONE 上调用方法 getFocusAreas() 导致 java.lang.NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24941372/