[android] surfaceview setDisplay时IllegalArgumentException: The surface has been released

Android 4.0


surfaceview setDisplay时IllegalArgumentException: The surface has been released

用Surfaceview + Mediaplayer做视频播放器demo过程中遇到这个问题,在网上找发现遇到这个问题的人很多,解决的方法也有人提供,但是用在我的代码上却没有效果。

自己看了下SurfaceView的文档,怀疑问题可能出在Surfaceview根本没有创建成功上,于是实现了 SurfaceHolder.Callback并且在surfaceCreated打断点追代码发现果然是在setDisplay的时候还没有创建Surfaceview,索性把setDisplay放在surfaceCreated中,运行正常。