Android 在Ruboto项目中使用JSON

Android 在Ruboto项目中使用JSON,android,ruby,json,require,ruboto,Android,Ruby,Json,Require,Ruboto,我用Ruby编写了两个不同的项目,使用Ruboto将Ruby打包到.apk中,这样就可以将它推送到Android设备上。这两个项目都将在我的手机和手机仿真器上编译和运行,但在这两个项目中添加“require”json“一行,不做任何更改,会导致它们在启动时失败,并将我踢回手机主页。所以这条线肯定是有问题的。你知道是什么导致了这一切吗?我也有同样的问题;你可以用 adb logcat 获取更多关于坠机的信息。如果您在那里查看,您将发现一条关于堆栈溢出的错误消息。您可以通过只需要json/pure

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

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

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

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

所以现在,我知道没有真正的解决办法。大多数大型或有用的gem都会导致相同的问题,例如yaml、httpi或nokogiri

编辑:
谷歌邮件列表中有一个类似的问题。

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

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

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

所以现在,我知道没有真正的解决办法。大多数大型或有用的gem都会导致相同的问题,例如yaml、httpi或nokogiri

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

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

require 'ruboto/util/stack'

with_large_stack{require 'json'}

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

with_large_stack(128){require 'json'}


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

Ruboto提供了一种帮助程序方法,用于运行堆栈大小增加的代码:

require 'ruboto/util/stack'

with_large_stack{require 'json'}

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

with_large_stack(128){require 'json'}


堆栈大小以KB为单位。

如果邮件列表上有类似问题,请链接到它。如果邮件列表上有类似问题,请链接到它。