首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android错误:无法创建epoll实例,或无法创建唤醒管道

Android错误:无法创建epoll实例,或无法创建唤醒管道
EN

Stack Overflow用户
提问于 2012-10-30 22:08:51
回答 2查看 4.1K关注 0票数 5

我有一个安卓应用程序,它使用计时器每5-10秒调用一次AsyncTask (使用java.util.Timer和java.util.TimerTask)。AsyncTask从Amazon AWS S3数据库获取图像数据,并加载主UI活动的ImageView。

这在一两个小时内工作得很好,但随后我收到一条隐秘的错误消息,应用程序就会被终止。错误消息来自"Looper“,它说:

代码语言:javascript
复制
Could not create epoll instance.  errno=24

代码语言:javascript
复制
Could not create wake pipe

在web上搜索似乎表明问题可能与文件描述符(打开的文件描述符太多?)有关。我已经检查了代码,但没有看到任何文件、流或连接未关闭的地方。

当应用程序被终止时,logcat会收到一条来自AndroidRuntime的消息:

代码语言:javascript
复制
FATAL EXCEPTION: main

有没有人有关于这些消息的线索,或者如何修复?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2017-11-28 16:17:30

可能存在内存泄漏。使用Leakcanary来检测到底是哪部分代码创建了它。

票数 0
EN

Stack Overflow用户

发布于 2013-08-10 06:44:42

当我使用警报来太快地触发任务时,我的代码中也出现了同样的错误。

我通过更改我的代码修复了它,这样它只会被添加到警报中,以便在方法的平均运行时间之后再次运行(加上一些额外的时间以防万一)。如果您添加任务的速度比它们完成执行的速度更快,那么您最终会填满Looper,从而抛出错误。

根据我的理解,循环本质上就是一个由线程运行的事物队列。

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

https://stackoverflow.com/questions/13140798

复制
相关文章

相似问题

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