cameraview icon indicating copy to clipboard operation
cameraview copied to clipboard

Attempt to invoke interface method 'java.lang.Object java.util.SortedSet.last()' on a null object reference

Open JakeWoki opened this issue 8 years ago • 1 comments

FATAL EXCEPTION: main
Process: com.google.android.cameraview.demo, PID: 27601
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.SortedSet.last()' on a null object reference
	at com.google.android.cameraview.Camera2.prepareImageReader(Camera2.java:450)
	at com.google.android.cameraview.Camera2.setAspectRatio(Camera2.java:272)
	at com.google.android.cameraview.CameraView.setAspectRatio(CameraView.java:346)
	at com.google.android.cameraview.demo.MainActivity.onAspectRatioSelected(MainActivity.java:278)
	at com.google.android.cameraview.demo.AspectRatioFragment$1.onClick(AspectRatioFragment.java:86)
	at android.support.v7.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1045)
	at android.widget.AdapterView.performItemClick(AdapterView.java:313)
	at android.widget.AbsListView.performItemClick(AbsListView.java:1201)
	at android.widget.AbsListView$PerformClick.run(AbsListView.java:3195)
	at android.widget.AbsListView$3.run(AbsListView.java:4138)
	at android.os.Handler.handleCallback(Handler.java:761)
	at android.os.Handler.dispatchMessage(Handler.java:98)
	at android.os.Looper.loop(Looper.java:156)
	at android.app.ActivityThread.main(ActivityThread.java:6523)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)

Camera2.java

boolean setAspectRatio(AspectRatio ratio) {
        if (ratio == null || ratio.equals(mAspectRatio) ||
                !mPreviewSizes.ratios().contains(ratio) ||
                !mPictureSizes.ratios().contains(ratio)) {
            // TODO: Better error handling
            return false;
        }
        mAspectRatio = ratio;
        prepareImageReader();
        if (mCaptureSession != null) {
            mCaptureSession.close();
            mCaptureSession = null;
            startCaptureSession();
        }
        return true;
    }

replace

boolean setAspectRatio(AspectRatio ratio) {
        if (ratio == null || ratio.equals(mAspectRatio) ||
                !mPreviewSizes.ratios().contains(ratio)) {
            // TODO: Better error handling
            return false;
        }
        mAspectRatio = ratio;
        prepareImageReader();
        if (mCaptureSession != null) {
            mCaptureSession.close();
            mCaptureSession = null;
            startCaptureSession();
        }
        return true;
    }

Camera1 may the same as Camera2.

JakeWoki avatar Jul 19 '17 08:07 JakeWoki

I am getting the same error on Nokia 6 after clicking change aspect ratio button. Did anybody found the solution? And I have one question: Why there is no 1:1 ratio option visible in Nokia 6?

Process: com.google.android.cameraview.demo, PID: 14387
    java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.SortedSet.last()' on a null object reference
        at com.google.android.cameraview.Camera2.prepareImageReader(Camera2.java:450)
        at com.google.android.cameraview.Camera2.setAspectRatio(Camera2.java:272)
        at com.google.android.cameraview.CameraView.setAspectRatio(CameraView.java:346)
        at com.google.android.cameraview.demo.MainActivity.onAspectRatioSelected(MainActivity.java:238)
        at com.google.android.cameraview.demo.AspectRatioFragment$1.onClick(AspectRatioFragment.java:86)
        at android.support.v7.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1067)
        at android.widget.AdapterView.performItemClick(AdapterView.java:318)
        at android.widget.AbsListView.performItemClick(AbsListView.java:1181)
        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3150)
        at android.widget.AbsListView$3.run(AbsListView.java:4103)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6501)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) ``

nawinkhatiwada avatar Oct 23 '18 07:10 nawinkhatiwada