Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android media.AudioTrack.finalize抛出非法状态异常:活页夹已完成_Java_Android_Daemon_Mediarecorder - Fatal编程技术网

Java Android media.AudioTrack.finalize抛出非法状态异常:活页夹已完成

Java Android media.AudioTrack.finalize抛出非法状态异常:活页夹已完成,java,android,daemon,mediarecorder,Java,Android,Daemon,Mediarecorder,我正在使用一个定制相机在android上录制视频。 出现问题的设备是一款搭载安卓6.0.1的Nexus5 当相机第二次录制完时,我在under the hood android media AudioTrack课程中遇到了以下例外情况。这是android、FinalizerDamon隐式调用的东西,而不是我直接执行的任何代码的结果。因此FinalizerDamon调用AudioTrack上的finalize,并获得一个非法状态异常 12-02 09:20:23.155 23705-23714/s

我正在使用一个定制相机在android上录制视频。 出现问题的设备是一款搭载安卓6.0.1的Nexus5

当相机第二次录制完时,我在under the hood android media AudioTrack课程中遇到了以下例外情况。这是android、FinalizerDamon隐式调用的东西,而不是我直接执行的任何代码的结果。因此FinalizerDamon调用AudioTrack上的finalize,并获得一个非法状态异常

12-02 09:20:23.155 23705-23714/social.ivideo.greetings E/System: Uncaught exception thrown by finalizer
12-02 09:20:23.160 23705-23714/social.ivideo.greetings E/System: java.lang.IllegalStateException: Binder has been finalized!
                                                                     at android.os.BinderProxy.transactNative(Native Method)
                                                                     at android.os.BinderProxy.transact(Binder.java:615)
                                                                     at com.android.internal.app.IAppOpsService$Stub$Proxy.stopWatchingMode(IAppOpsService.java:435)
                                                                     at android.media.PlayerBase.baseRelease(PlayerBase.java:136)
                                                                     at android.media.AudioTrack.finalize(AudioTrack.java:979)
                                                                     at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:222)
                                                                     at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:209)
                                                                     at java.lang.Thread.run(Thread.java:761)
也许我需要在摄像机录完后做些清理?以下是录制停止时我正在使用的当前代码:

 @Override
public void stopRecording(boolean wasCancelled, float duration) {
    if (mMediaRecorder != null) {
        mMediaRecorder.stop();
        mMediaRecorder.reset();

        if (flashState) {
            toggleFlash();
        }

        if (!wasCancelled) {
            callbacks.onFinishedRecording(null, mediaPath, duration, wasCancelled);
        }
    }
}
mMediaRecorder是MediaRecorder类的一个实例


有什么建议吗?

所以我认为这可能是安卓的错误。看起来与此问题类似,在“未来版本”中标记为已修复:

Android 7.1.2中也报告了同样的问题

在安卓8.0中修复