私はRubyで書かれた2つのプロジェクトをRubyを使って.apkにパックし、Androidデバイスにプッシュすることができます。どちらのプロジェクトも私の電話機と電話機エミュレータでコンパイルして実行しますが、両方のプロジェクトで '' json ''という行を追加し、何も変えずに起動時に失敗し、電話のホームページに戻します。だから間違いなくその行のものです。これを引き起こす可能性のあるアイデアは何ですか?RubootプロジェクトでJSONを使用する
0
A
答えて
1
同じ問題がありました。クラッシュについての詳細は、
adb logcat
です。そこを見ると、スタックオーバーフローに関するエラーメッセージが表示されます。あなただけのJSONは/純粋必要とすることにより、このスタックオーバーフローを回避することができます
require 'json/pure'
これはまだ一般的な問題を解決しない:ほとんどはスタックオーバーフローにつながるのコールが必要です。 Googleを使って、スタックオーバーフローでクラッシュするまで、アンドロイドはネストされた再帰呼び出しをあまり多く持たないことが分かりました。私が指摘した解決策は、再帰の代わりに反復を使用することでした。 :)
だから、私は本当の解決策を知りません。大きな宝石や有用な宝石のほとんどは、同じ問題を引き起こします。 yaml、httpi、またはnokogiri。
編集: Googleメーリングリストにも同様の質問があります。
2
Rubotoは増加したスタックサイズでコードを実行するためのヘルパーメソッドを提供しています:
require 'ruboto/util/stack'
with_large_stack{require 'json'}
または
with_large_stack do
require 'json'
end
これは深い再帰を許可する大きなスタックとは別のスレッドでコードを実行します。 with_large_stackメソッドのデフォルトのスタックサイズは64KBです。あなたは、オプションの整数引数またはオプションのハッシュを使用してこの値を設定することができます
with_large_stack(128){require 'json'}
または
with_large_stack(:size => 128){require 'json'}
スタックサイズをキロバイト(KB)で与えられます。
関連する問題
- 1. duktapeでjsonオブジェクトを使用する
- 2. ポータブルクラスライブラリでJsonを使用する
- 3. jsonをPlay 2で使用する
- 4. DataServiceContextでjsonを使用する
- 5. レンダリングでカスタムjsonメソッドを使用する
- 6. JSONで計算カラムを使用する
- 7. CodeIgniterでjQuery JSONを使用する
- 8. JSONでリストを使用する場合
- 9. Chart.jsでJSONファイルデータを使用する
- 10. Scalaでlift-jsonを使用してJSONを解析する
- 11. 私のプロジェクトでオープンソースコードを使用する
- 12. iOSプロジェクトでJavaライブラリを使用する
- 13. CodeigniterプロジェクトでNet_Gearmanを使用する
- 14. Maven GWTプロジェクトでGuavaを使用する
- 15. mavenプロジェクトでHiveを使用する
- 16. AndroidプロジェクトでTabLayoutを使用する
- 17. 私のプロジェクトでセッションを使用する
- 18. ASP.NETプロジェクトでTwitter Bootstrapを使用する
- 19. grailsプロジェクトでjquery 2.2.2を使用する
- 20. C#MVC3プロジェクトでOutputCacheを使用する
- 21. Eclipseプロジェクトでneo4jデータベースを使用する
- 22. C#プロジェクトでWebkit-Sharpを使用する
- 23. Railsでアクティブリソースを使用してJSON REST APIを使用する
- 24. 私のプロジェクトで別のプロジェクトの一部を使用する
- 25. プロジェクトでFXCopを使用
- 26. SilexプロジェクトでProcessBuilderを使用
- 27. MVC3プロジェクトでApicontrollersを使用
- 28. makefileプロジェクトでqtcreatorを使用
- 29. .NETで使用するJSON Rpcライブラリ
- 30. 次のJSONをJSTreeで使用できるJSONに変換するには
メーリングリストに同様の質問がある場合は、リンクしてください。 –