E/AndroidRuntime(2671):java.lang.RuntimeException:设置参数失败

E/AndroidRuntime( 2671): java.lang.RuntimeException: setParameters failed

我正在为 HTC Doubleshot 开发 ROM,但我 运行 遇到了相机的一些问题(强制关闭)。特别是库存相机和大多数第三方相机(UCam Ultra Camera 没有)。

我有几个 logcats(有趣的是从最新的第 696 行开始)的情况,我不知道发生了什么。其他相机,如 Google 相机,具有相同的结果。

我的 ROM 是 CarbonROM 4.4.4 的构建版本,开发人员在构建 Cyanogenmod 11 时已经成功完成了工作。所以我的清单已在我的 github (joelmaxuel) 和他的 (EmmanuelU) 之间拆分, 奇巧DS):

<?xml version="1.0" encoding="UTF-8"?>

<manifest>

    <remote name="DS"
       fetch="git://github.com/KitKatDS/"/>

    <remote name="emmanuel"
       fetch="git://github.com/EmmanuelU/"/>

    <remote name="joelmaxuel"
       fetch="git://github.com/joelmaxuel/"/>

    <remote name="githubby"
       fetch="git://github.com/"/>

    <project path="buildbot" name="James_Buildbot" revision="master" remote="emmanuel">
        <copyfile src="James" dest="James" />
    </project>

    <project name="android_device_htc_common" path="device/htc/common" revision="gingerbread" remote="DS" />

    <project path="device/htc/doubleshot" name="android_device_htc_doubleshot" remote="joelmaxuel" revision="kk" />
    <project path="device/htc/msm8660-common" name="android_device_htc_msm8660-common" remote="joelmaxuel" revision="kk" />
    <project path="vendor/htc/doubleshot" name="android_vendor_htc_doubleshot" remote="joelmaxuel" revision="kk" />
    <project path="kernel/htc/doubleshot" name="wild_kernel_htc_msm8660" remote="emmanuel" revision="android-msm-doubleshot-3.0-ion" />

    <remove-project name="CyanogenMod/android_hardware_libhardware_legacy" />
    <remove-project name="CarbonDev/android_frameworks_av" />
    <remove-project name="CarbonDev/android_frameworks_native" />
    <remove-project name="CarbonDev/android_packages_apps_Camera2" />
    <project name="android_hardware_libhardware_legacy" path="hardware/libhardware_legacy" revision="cm-11.0" remote="DS" />
    <project name="android_hardware_qcom_media-legacy" path="hardware/qcom/media-legacy" revision="cm-11.0-ion" remote="DS" />
    <project name="android_hardware_qcom_display-legacy" path="hardware/qcom/display-legacy" revision="cm-11.0-ion" remote="DS" />
    <project name="android_frameworks_av" path="frameworks/av" revision="cm-11.0" remote="DS" />
    <project name="android_packages_apps_Camera2" path="packages/apps/Camera2" revision="cm-11.0" remote="DS" />
    <project name="android_frameworks_native" path="frameworks/native" revision="kk" remote="joelmaxuel" />

</manifest>

我确定这是在我的 BoardConfigCommon.mk:

# Camera
BOARD_USES_QCOM_LEGACY_CAM_PARAMS := true
COMMON_GLOBAL_CFLAGS += -DICS_CAMERA_BLOB -DNO_UPDATE_PREVIEW -DQCOM_BSP_CAMERA_ABI_HACK

BOARD_USES_QCOM_LEGACY_CAM_PARAMS 的代码将添加适当的 CFLAG(我检查了 frameworks_av 代码,文件 camera/Android.mk):

ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
LOCAL_CFLAGS += -DQCOM_HARDWARE
endif
ifeq ($(BOARD_USES_QCOM_LEGACY_CAM_PARAMS),true)
LOCAL_CFLAGS += -DQCOM_LEGACY_CAM_PARAMS
endif

我不知道接下来要检查什么。有什么建议吗?

设备的相机实现认为您传递的设置值无效。

很难看到所有其他相机记录之间的实际投诉,但它在日志中:

E/QualcommCameraHardwareZSL( 171): 无效的对焦模式值: continuous-picture E/QualcommCameraHardwareZSL( 171): 虚拟 android::status_t android::QualcommCameraHardware::setParameters(const android::CameraParameters&): 6487, rc = -22

如果支持的自动对焦模式列表中没有定义连续图片,则应用程序尝试设置它是无效的。如果已列出,则相机实施错误地拒绝了它。