cameraview
cameraview copied to clipboard
Attempt to invoke interface method 'java.lang.Object java.util.SortedSet.last()' on a null object reference
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.
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) ``