首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓RenderScript FinalizerWatchdogDaemon致命异常

安卓RenderScript FinalizerWatchdogDaemon致命异常
EN

Stack Overflow用户
提问于 2013-10-10 23:32:48
回答 1查看 4.8K关注 0票数 4

我在我的应用程序中使用RenderScript来完成几个图像处理任务。

有时,我会随机得到以下异常:

代码语言:javascript
运行
复制
10-10 15:27:04.479: E/AndroidRuntime(2113): FATAL EXCEPTION: FinalizerWatchdogDaemon
10-10 15:27:04.479: E/AndroidRuntime(2113): java.util.concurrent.TimeoutException: android.renderscript.Type.finalize() timed out after 10 seconds
10-10 15:27:04.479: E/AndroidRuntime(2113):     at android.renderscript.RenderScript.nObjDestroy(RenderScript.java:216)
10-10 15:27:04.479: E/AndroidRuntime(2113):     at android.renderscript.BaseObj.finalize(BaseObj.java:116)
10-10 15:27:04.479: E/AndroidRuntime(2113):     at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187)
10-10 15:27:04.479: E/AndroidRuntime(2113):     at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
10-10 15:27:04.479: E/AndroidRuntime(2113):     at java.lang.Thread.run(Thread.java:856)

我所有的RenderScript调用都包含在一个信号量中,以防止相同的脚本并行运行。谁能告诉我这条消息是什么意思,以及我如何防止它?

EN

回答 1

Stack Overflow用户

发布于 2013-10-11 08:47:17

你有一个长时间运行的内核吗?

当GC删除java代码引用时,此线程将尝试清除RS对象。如果有一个运行时间非常长的内核,它可能会被阻塞足够长的时间来触发你所看到的东西。我们不允许外部线程在内核运行时修改对象,因此实际上外部线程会被阻塞,直到内核完成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19300154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档