我正在開發一個Android的opencv應用程序,並試圖鎖定我的相機的自動曝光。我一直在關注OpenCV4Android中的教程3示例,以便訪問各種攝像頭參數。我製作了一個自定義相機類來訪問相機屬性。Android的自動曝光鎖定空指針異常
完整的錯誤:
NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters
android.hardware.Camera.getParameters() on a null object reference
at {PackageName}.MainView.lockAutoExposure()
這是我的MainView類到目前爲止(自定義相機類):
public class MainView extends JavaCameraView {
private static final String TAG = "Urop::MainView";
public MainView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@SuppressWarnings("deprecation")
public void lockAutoExposure() {
Camera.Parameters params = mCamera.getParameters();
params.setAutoExposureLock(true);
mCamera.setParameters(params);
}
}
這裏就是我實例化類,並在主要活動設置它:
private MainView mOpenCvCameraView;
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch(status) {
case LoaderCallbackInterface.SUCCESS:
{
Log.i(TAG, "Loaded Successfully");
mOpenCvCameraView.enableView();
mOpenCvCameraView.setMaxFrameSize(640, 480);
mOpenCvCameraView.lockAutoExposure();
System.loadLibrary("opencvnative");
break;
}
...
我在清單中的權限。不知道我是否需要任何東西:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.front"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.front.autofocus"
android:required="false" />
如果有人能幫助,我將不勝感激!
看看教程3示例,我沒有看到mCamera的任何初始化,所以我相信它是父類的成員。 –
好吧..嘗試添加mCamera = Camera.open()之前getParameters() – W0rmH0le
應用程序不再崩潰,但沒有任何顯示在屏幕上,現在我在logcat中得到「錯誤2」 –