The surface has been released

本文介绍了一种常见的Android开发中遇到的问题——在设置字幕显示时出现Thesurfacehasbeenreleased错误。文章详细解释了该错误发生的原因,并提供了一个简单有效的解决方案:确保在SurfaceView创建完成后的回调中进行设置。

昨天在搞一道image类型的字幕的时候,设置setSubtitleDisplay (surfaceHolder)的时候出现这个错误

The surface has been released。

当时在想,以前也碰过这个情况貌似,就是播放视频setDisplay(surfaceHolder)的时候,想到这种情况应该是

surfaceView还没有Created,所以在SurfaceCreated的回调里面才下setSubtitleDisplay(surfaceHolder),这样改了之后ok了,Yes。

expected specified color aspects (2:0:0:0) 2025-10-30 19:18:57.224 16813-16813 TransactionExecutor com.tencent.yolov5ncnn E Failed to execute the transaction: tId:-1941502035 ClientTransaction{ tId:-1941502035 transactionItems=[ tId:-1941502035 TopResumedActivityChangeItem{mActivityToken=android.os.BinderProxy@7bd4eec,onTop=true} tId:-1941502035 Target activity: com.tencent.yolov5ncnn.MainActivity tId:-1941502035 ActivityResultItem{mActivityToken=android.os.BinderProxy@7bd4eec,resultInfoList=[ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://com.google.android.apps.photos.contentprovider/... flg=0x1 xflg=0x4 clip={text/uri-list {U(content)}} }}]} tId:-1941502035 Target activity: com.tencent.yolov5ncnn.MainActivity tId:-1941502035 ResumeActivityItem{mActivityToken=android.os.BinderProxy@7bd4eec,procState=2,isForward=false,shouldSendCompatFakeFocus=false} tId:-1941502035 Target activity: com.tencent.yolov5ncnn.MainActivity tId:-1941502035 ] tId:-1941502035 } 2025-10-30 19:18:57.224 16813-16813 AndroidRuntime com.tencent.yolov5ncnn D Shutting down VM 2025-10-30 19:18:57.226 16813-16813 AndroidRuntime com.tencent.yolov5ncnn E FATAL EXCEPTION: main Process: com.tencent.yolov5ncnn, PID: 16813 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://com.google.android.apps.photos.contentprovider/... flg=0x1 xflg=0x4 clip={text/uri-list {U(content)}} }} to activity {com.tencent.yolov5ncnn/com.tencent.yolov5ncnn.MainActivity}: java.lang.IllegalArgumentException: The surface has been released at android.app.ActivityThread.deliverResults(ActivityThread.java:6184) at android.app.ActivityThread.handleSendResult(ActivityThread.java:6223) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:78) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:63) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2823) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:9067) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) Caused by: java.lang.IllegalArgumentException: The surface has been released at android.media.MediaCodec.native_configure(Native Method) at android.media.MediaCodec.configure(MediaCodec.java:2562) at android.media.MediaCodec.configure(MediaCodec.java:2422) at com.tencent.yolov5ncnn.MainActivity.decodeVideo(MainActivity.java:534) at com.tencent.yolov5ncnn.MainActivity.onActivityResult(MainActivity.java:257) at android.app.Activity.onActivityResult(Activity.java:7626) at android.app.Activity.internalDispatchActivityResult(Activity.java:9546) at android.app.Activity.dispatchActivityResult(Activity.java:9523) at android.app.ActivityThread.deliverResults(ActivityThread.java:6173) ... 14 more 2025-10-30 19:18:57.272 16813-16813 Process com.tencent.yolov5ncnn I Sending signal. PID: 16813 SIG: 9
最新发布
10-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值