我正在使用Titanium来构建我的应用程序,它在iPhone上运行良好。今天是我第一次在Android模拟器中运行它,它失败了。我挖掘了错误日志,发现了这个
[TRACE] E/TiJSError( 326): (kroll$1: app://app.js) [274,5815] ----- Titanium Javascript Runtime Error -----
[TRACE] E/TiJSError( 326): (kroll$1: app://app.js) [1,5816] - In file:///android_asset/Resources/app/models/base.js:107,0
[TRACE] E/TiJSError( 326): (kroll$1: app://app.js) [2,5818] - Message: Too deep recursion while parsing
[TRACE] E/TiJSError( 326): (kroll$1: app://app.js) [2,5820] - Source: null
[TRACE] E/KrollContext( 326): (kroll$1: app://app.js) [149,5969] Error: null
[TRACE] E/KrollContext( 326): java.lang.NullPointerException
我做了一些研究,其中一个Ti人Don Thorp回答了similar question
您使用的文件有多大。 这是源头的复杂性 这是问题,而不是什么 来源正在做。这一直是 在1.5中解决,是应用程序 可通过tiapp.xml设置进行配置 提高堆栈大小。简单化 来源是最好的方法, 但在某些情况下,你必须这样做 堆栈。 -
但我还没有找到如何在tiapp.xml中增加堆栈大小的任何地方。有谁知道这个属性?
谢谢!
答案 0 :(得分:5)
在深入研究了titanium_mobile源码,特别是TiApplication.java文件后,我能够增加stacksize。基本上将这一行添加到根节点之间的任何位置的tiapp.xml。使用32K堆栈大小,应用程序能够解析所有脚本。
<property name="ti.android.threadstacksize" type="int">32768</property>