Java Android摄像头API:getSupportedColorEffects可以返回不支持的效果吗?

Java Android摄像头API:getSupportedColorEffects可以返回不支持的效果吗?,java,android,android-camera,Java,Android,Android Camera,我只是面临着一个奇怪的问题。我的应用程序崩溃了 Fatal Exception: java.lang.RuntimeException: setParameters failed at android.hardware.Camera.native_setParameters(Camera.java) 尽管如此,我尝试设置的效果仍列在parameters.getSupportedColorEffects()中 有没有人面临过类似的问题?我想这是一个特定于设备的bug,因为我只能在三星Galaxy

我只是面临着一个奇怪的问题。我的应用程序崩溃了

Fatal Exception: java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Camera.java)
尽管如此,我尝试设置的效果仍列在
parameters.getSupportedColorEffects()

有没有人面临过类似的问题?我想这是一个特定于设备的bug,因为我只能在三星Galaxy S4上复制它(我只从这个设备上得到Crashlytics报告)。效果是
黑板
白板

编辑:添加了一些代码,但这不是很必要,我在文章中描述了整个问题

public void setColorEffect(String colorEffect)
{
    if (mCamera != null)
    {
        Parameters params = mCamera.getParameters();
        params.setColorEffect(colorEffect);
        mCamera.setParameters(params);
    }
}
此方法仅在popupWindow项单击时调用,该项仅包含来自
getSupportedColorEffects
的值:

final List<String> colorEffects = mPreview.getSupportedColorEffects();
if (colorEffects != null)
{
    final CustomPopUpAdapter adapter = new CustomPopUpAdapter(this, colorEffects.toArray(new String[colorEffectsSize]));
    adapter.setSelectedItem(items[savedColorEffect]);
    final ListPopupWindow popupWindow = new ListPopupWindow(this);
    // ...
    popupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id)
        {
            mPreview.setColorEffect(colorEffects.get(position));
            savedColorEffect = position;
            popupWindow.dismiss();
        }
    });
    popupWindow.show();
}
final List colorEffects=mPreview.getSupportedColorEffects();
if(colorEffects!=null)
{
最终CustomPopUpAdapter=新的CustomPopUpAdapter(这是colorEffects.toArray(新字符串[colorEffectsSize]);
adapter.setSelectedItem(项[savedColorEffect]);
最终列表popupWindow popupWindow=新列表popupWindow(此);
// ...
popupWindow.setOnItemClickListener(新的AdapterView.OnItemClickListener()
{
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
mPreview.setColorEffect(colorEffects.get(position));
savedColorEffect=位置;
popupWindow.disclose();
}
});
popupWindow.show();
}

在此处发布相关代码,这样我们就可以为您提供最好的解决方案,而无需代码,我们无法?是
params
null还是更重要的是,支持
setColorEffect
params
非null,列表包含测试设备上的15个项目,应用程序仅在其中2个项目上崩溃。@IvanGoncharov抱歉,因为三星品牌,我没有读到这些文字:p看看这个“解决方案”,简单的效果,如乌贼墨/负片/单声道效果很好。你的假设是对的,我也考虑过。这些效果在背向相机上不会失败!(它们似乎什么都不做,但至少不会使应用程序崩溃)。昨天,当我得到支持的效果列表时,我只检查了正确的相机是否初始化。在这里发布相关代码,这样我们就可以为您提供没有代码的最佳解决方案,我们不能?是
params
null还是更重要的,支持
setColorEffect
params
notnull,该列表包含测试设备上的15项,应用程序只在其中两个上崩溃。@IvanGoncharov很抱歉,因为三星品牌,所以没有读到这些内容:p看看这个“解决方案”,简单的效果,如深褐色/负片/单声道效果很好。你的假设是对的,我也考虑过。这些效果在背向相机上不会失败!(它们似乎什么都不做,但至少不会使应用程序崩溃)。昨天,当我得到支持的效果列表时,我只检查了正确的相机是否已初始化。