1. Camera
Camera是Android framework里面支持的,同意你拍照和拍摄视频的设备,那么,在使用camera开发中总是会遇到一些问题,比例如以下面这样子的:
E/AndroidRuntime(1542): java.lang.RuntimeException: setParameters failed
E/AndroidRuntime(1542): at android.hardware.Camera.native_setParameters(Native Method)
E/AndroidRuntime(1542): at android.hardware.Camera.setParameters(Camera.java:914)
出现这样的错误。依据错误提示我们能够知道是android的setParameters方法出错了。
2、那该怎样解决呢?
我们知道camera的parameters中也有非常多參数设置的,是哪个出错了呢?非常多人不知所以然就上网開始找,找不到就開始各种推測,一个个參数设置过去,事实上最有效的方式是究竟层找原因。ok,让我们打开android代码找到camera类。然后查找setParameters方法。
private native final void native_setParameters(String params);
/**
* Changes the settings for this Camera service.
*
* @param params the Parameters to use for this Camera service
* @throws RuntimeException if any parameter is invalid or not supported.
* @see #getParameters()
*/
public void setParameters(Parameters params) {
native_setParameters(params.flatten());
}
从这段代码中代码中。我们能够得到什么信息呢,setParameters方法是调用jni方法native_setParameters的方法,事实上看到这里就差并不多了,由于再去查看jni方法是非常麻烦的。毕竟我们日常开发使用大部分是java代码。我们能够发现传输进来的是Parameters參数,调用了 Parameters的flatten方法。
我们查找flatten的代码进行查看。