When I'm trying to Record a video with MediaStore.ACTION_VIDEO_CAPTURE on Android 13, the app crashes.
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.content.ContentValues.put(java.lang.String, java.lang.Long)' on a null object reference
at com.android.camera.VideoModule.saveVideo(VideoModule.java:1263)
at com.android.camera.VideoModule.stopVideoRecording(VideoModule.java:1513)
at com.android.camera.VideoModule.onStopVideoRecording(VideoModule.java:656)
at com.android.camera.VideoModule.onShutterButtonClick(VideoModule.java:697)
at com.android.camera.ShutterButton.performClick(ShutterButton.java:190)
at android.view.View.performClickInternal(View.java:7483)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:29334)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7872)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
My code:
Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takePictureIntent ->
// Ensure that there's a camera activity to handle the intent
takePictureIntent.resolveActivity(packageManager)?.also {
// Create the File where the photo should go
val videoFile: File? = try {
createVideoFile()
} catch (ex: IOException) {
// Error occurred while creating the File
null
}
// Continue only if the File was successfully created
videoFile?.also {
val videoUri: Uri = FileProvider.getUriForFile(
this@MainActivity,
"com.cameralbum.fileprovider",
it
)
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri)
startActivityForResult(takePictureIntent, REQUEST_TAKE_VIDEO)
}
}
}
This code works and records videos starting from Android 6 to Android 12 included.
Any help will be very appreciated.
Thanks