我做了一个Android应用程序,现在它在Google Play上。但现在有人报告了一个崩溃,堆栈跟踪显示如下:
java.util.concurrent.TimeoutException: android.media.MediaPlayer.finalize() timed out after 10 seconds
at android.media.MediaPlayer.native_finalize(Native Method)
at android.media.MediaPlayer.finalize(MediaPlayer.java:1960)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
at java.lang.Thread.run(Thread.java:856)并且没有迹象表明我的某个包中有代码。我确实使用了MediaPlayer类。有谁能帮我吗?
杰西。
发布于 2015-02-06 17:59:02
在代码中调用MediaPlayer.release() (例如,在Activity.onPause()中)。这将导致在MediaPlayer.finalize()中做的工作更少,异常应该会消失。
发布于 2017-05-31 00:27:04
要捕获此错误,可以在片段或活动中实现android.media.MediaPlayer.OnErrorListener。
/*
* Called to indicate an error. Parameters
*
* mp the MediaPlayer the error pertains to what the type of error that has
* occurred: MEDIA_ERROR_UNKNOWN MEDIA_ERROR_SERVER_DIED extra an extra
* code, specific to the error. Typically implementation dependant. Returns
* True if the method handled the error, false if it didn't. Returning
* false, or not having an OnErrorListener at all, will cause the
* OnCompletionListener to be called.
*/
@Override
public boolean onError(MediaPlayer mp, int what, int extras) {
return true;
}在创建MediaPlayer时,请确保调用
mediaPlayer.setOnErrorListener(this);发布于 2015-10-28 15:08:24
一些想法:
的状态
https://stackoverflow.com/questions/20912417
复制相似问题