首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ruboto项目中使用JSON

在Ruboto项目中使用JSON
EN

Stack Overflow用户
提问于 2011-11-05 00:10:35
回答 2查看 375关注 0票数 0

我有两个用Ruby写的不同的项目,使用Ruboto将Ruby打包到.apk中,这样它就可以推送到安卓设备上。这两个项目都将在我的手机和手机模拟器上编译和运行,但在两个项目中添加“require‘json’”这一行,不做任何更改,会导致它们在启动时失败,并将我踢回手机主页。所以这肯定是和这条线有关。你知道是什么导致了这种情况吗?

EN

回答 2

Stack Overflow用户

发布于 2012-03-15 04:25:25

Ruboto提供了一个辅助方法来运行增加了堆栈大小的代码:

代码语言:javascript
复制
require 'ruboto/util/stack'

with_large_stack{require 'json'}

代码语言:javascript
复制
with_large_stack do
  require 'json'
end

这将在一个单独的线程中运行您的代码,该线程具有更大的堆栈,允许深度递归。with_large_stack方法的默认堆栈大小为64KB。您可以使用可选的整数参数或选项hash来设置此值:

代码语言:javascript
复制
with_large_stack(128){require 'json'}

代码语言:javascript
复制
with_large_stack(:size => 128){require 'json'}

堆栈大小以千字节(KB)为单位。

票数 2
EN

Stack Overflow用户

发布于 2011-11-18 23:37:16

我也有同样的问题;你可以使用

代码语言:javascript
复制
adb logcat

以获取有关坠机的更多信息。如果你查看那里,你会发现一条关于堆栈溢出的错误消息。您可以通过只需要json/pure来绕过此堆栈溢出:

代码语言:javascript
复制
require 'json/pure'

这仍然无助于解决一般问题:大多数请求调用会导致堆栈溢出。通过Google,我发现Android不能有太多的嵌套递归调用,只有大约22个,直到它因堆栈溢出而崩溃。我提到的解决方案是使用迭代,而不是递归。:)

所以现在,我知道没有真正的解决方案。大多数大型或有用的gem都会出现同样的问题,例如yaml、httpi或nokogiri。

编辑:在Google邮件列表中也有类似的问题。

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

https://stackoverflow.com/questions/8012301

复制
相关文章

相似问题

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