After including the code for opening camera app, I got an error in this section:
val captureImageIntent = takePhoto.contract.createIntent(
requireContext(),
null,
)
The error goes like :
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.bignerdranch.android.criminal_intent_22_2, PID: 23861
java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter input
at androidx.activity.result.contract.ActivityResultContracts$TakePicture.createIntent(Unknown Source:7)
at androidx.activity.result.contract.ActivityResultContracts$TakePicture.createIntent(ActivityResultContracts.kt:275)
at com.bignerdranch.android.criminal_intent_22_2.CrimeDetailFragment.onViewCreated(CrimeDetailFragment.kt:133)
at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1890)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1814)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1751)
at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:538)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6651)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
It is solved only after setting photoUri a class level variable, populating it before this intent-extraction step and using it there, like below:
val captureImageIntent = takePhoto.contract.createIntent(
requireContext(),
photoUri,
)
Is it the expected solution or have I messed something up?