我制作了一个Android应用程序,现在它已经在Google Play上了。 但是现在有人报告了Crash,而堆栈跟踪说了以下内容:
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类。 谁可以帮助我在这里?
杰西。
答案 0 :(得分:3)
在您的代码中调用MediaPlayer.release()
(例如,在Activity.onPause()
中)。它会导致MediaPlayer.finalize()
中的工作量减少,异常就会消失。
答案 1 :(得分:1)
要捕获此错误,您可以在片段或活动中实现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);
答案 2 :(得分:0)
答案 3 :(得分:-1)
我认为客户端上的mediaserver进程已崩溃。