I am using Android 9 (Pie), API level 28. Here is my code for taking a picture (not sure if its a good design, I've never done mobile development before)
// this is a class that contains a part of the activity that can be either hidden or shown,
// kinda like a popup
fun initCameraClick(activity: UserProfileActivity) {
var uri:Uri? = null
val takePicture = activity.registerForActivityResult(ActivityResultContracts.TakePicture()) { success: Boolean ->
if (success) {
Log.i("camerauri", uri.toString())
this.profilepic.setImageURI(uri) // profilepic is an imagebutton
}
}
this.cameraButton.setOnClickListener {
takePicture.launch(uri)
}
}
While I can launch the camera, it keeps showing this after I take a picture:
What am I doing wrong? I can't find any stack trace in the run tab or the logcat tab
EDIT: here is the error from the logcat (com.android.camera2)
2021-11-07 14:32:44.036 6361-6361/com.android.camera2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.camera2, PID: 6361
java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)
at com.google.common.base.Optional.of(Optional.java:85)
at com.android.camera.captureintent.state.StateSavingPicture.onEnter(StateSavingPicture.java:77)
at com.android.camera.captureintent.stateful.StateMachineImpl.jumpToState(StateMachineImpl.java:62)
at com.android.camera.captureintent.stateful.StateMachineImpl.processEvent(StateMachineImpl.java:110)
at com.android.camera.captureintent.state.StateOpeningCamera$9.onClick(StateOpeningCamera.java:307)
at android.view.View.performClick(View.java:6597)
at android.view.View.performClickInternal(View.java:6574)
at android.view.View.access$3100(View.java:778)
at android.view.View$PerformClick.run(View.java:25885)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)