2

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

Lev T.
  • 31
  • 3

0 Answers0