google / cameraview

[DEPRECATED] Easily integrate Camera features into your Android app
Apache License 2.0
4.74k stars 1.03k forks source link

Switch Aspect Ratio It Crashed #219

Open hxk1224 opened 6 years ago

hxk1224 commented 6 years ago

12-12 11:23:37.212 28602-28602/com.wy.jx_mses E/CrashHandler: java.lang.NullPointerException at com.google.android.cameraview.Camera1.adjustCameraParameters(Camera1.java:333) at com.google.android.cameraview.Camera1.setAspectRatio(Camera1.java:174) at com.google.android.cameraview.CameraView.setAspectRatio(CameraView.java:346) at com.wy.jx_mses.camera.CameraActivity.onAspectRatioSelected(CameraActivity.java:246) at com.wy.jx_mses.camera.AspectRatioFragment$1.onClick(AspectRatioFragment.java:86) at android.support.v7.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1046) at android.widget.AdapterView.performItemClick(AdapterView.java:299) at android.widget.AbsListView.performItemClick(AbsListView.java:1115) at android.widget.AbsListView$PerformClick.run(AbsListView.java:2928) at android.widget.AbsListView$3.run(AbsListView.java:3691) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5016) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611) at dalvik.system.NativeStart.main(Native Method)

//Code here void adjustCameraParameters() { SortedSet sizes = mPreviewSizes.sizes(mAspectRatio); if (sizes == null) { // Not supported mAspectRatio = chooseAspectRatio(); sizes = mPreviewSizes.sizes(mAspectRatio); } Size size = chooseOptimalSize(sizes);

    // Always re-apply camera parameters
    // Largest picture size in this ratio
    final Size pictureSize = mPictureSizes.sizes(mAspectRatio).last();// Crash Here
    if (mShowingPreview) {
        mCamera.stopPreview();
    }
    mCameraParameters.setPreviewSize(size.getWidth(), size.getHeight());
    mCameraParameters.setPictureSize(pictureSize.getWidth(), pictureSize.getHeight());
    mCameraParameters.setRotation(calcCameraRotation(mDisplayOrientation));
    setAutoFocusInternal(mAutoFocus);
    setFlashInternal(mFlash);
    mCamera.setParameters(mCameraParameters);
    if (mShowingPreview) {
        mCamera.startPreview();
    }
}
sibelius commented 6 years ago

check this https://github.com/google/cameraview/pull/218