【发布时间】:2015-09-02 08:15:32
【问题描述】:
在运行我用 rhomobile 构建的 android 应用程序几分钟后,我遇到了JNI ERROR (app bug) local reference table overflow (max=512)。
输出该表的最后10个条目都是Json rpc字符串:
java.lang.String "{"jsonrpc": "2.0... (43 chars)
有时是 47 个字符。
我不知道这个错误是从哪里来的,所以一个好的开始是查看整个字符串对象(所以 ... 部分)。
这可以实现吗?如果可以,如何实现?
编辑:
在溢出之前,我会每隔一段时间收到以下消息
art Attempt to remove local handle scope entry from IRT, ignoring
我怎样才能知道哪个本地句柄没有被删除?
【问题讨论】:
-
搜索“本地引用表溢出”或“DeleteLocalRef”。我记得我发布了stackoverflow.com/questions/12088207/… 和stackoverflow.com/a/14872927/755804 这些帖子将提供一些解决该错误的线索,但您可能无法控制需要修复的代码。 (但如果它是开源的......)
-
谢谢,但我已经读过了。正如你所说,它来自我无法控制的代码。我的想法是,如果我能看到这些字符串中的内容,我就能看到导致此溢出的原因。那么有没有办法扩展那些“...”?
-
PushLocalFrame() / PopLocalFrame() ?
-
您的代码是否调用了运行几分钟的 Java 函数?如果是,您可能必须重构它并让 Java 调用 Java。可以在本地调用之间保留本地结构。
-
至少我不知道。可能 rhodes 在后台执行此操作。即使我排除了我的 Java 本机扩展(所以只使用 js),也会发生错误:(我真的迷失在这个错误上。无论如何,谢谢你的想法
标签: java android java-native-interface rhomobile rhodes