开发者社区> 问答> 正文

加载太多javascript时android phonegap应用程序失败

我有一个基于Web 2.0技术的应用程序-基本上,我使用phonegap / Titanium方法来启动Web浏览器,其中大部分应用程序都是用javascript和HTML(更精确地说是jQuery)编写的。该应用程序可以在模拟器上很好地运行,但是当我在G1上启动它时,它会崩溃。当我减少为该应用程序编写的javascript的数量时,它会再次开始工作。或者,如果我删除javascriptInterface来访问某些基于“ java”的方法,则该应用程序也可以运行。

当我尝试加载应用程序所需的所有javascript和java对象时,它崩溃了(如下面的日志所示)。我可以在Webkit中加载的“代码”内存量是否有一定的硬性限制?疯狂的是,这个应用程序使用了很多图像,可以很好地加载..好像我在允许我解析并加载到Webkit的javascript行数上达到了一些限制?它确实说了一些“打开的文件太多”的问题,但这可能是问题所在,但是我实际上并没有使用应用程序打开任何文件,因此我对此错误感到困惑。

谢谢你的帮助。最近几天,我一直在为此苦苦挣扎。


07-03 16:43:23.430: DEBUG/dalvikvm(104): GC freed 964 objects / 41632 bytes in 285ms
07-03 16:43:24.030: DEBUG/dalvikvm(314): GC freed 710 objects / 23680 bytes in 131ms
07-03 16:43:24.380: INFO/ActivityManager(62): Process android.process.im (pid 220) has died.
07-03 16:43:24.650: DEBUG/dalvikvm(104): GC freed 964 objects / 41688 bytes in 154ms
07-03 16:43:24.700: ERROR/IMemory(104): cannot dup fd=1023, size=1048576, err=0 (Too many open files)
07-03 16:43:24.700: ERROR/IMemory(104): cannot map BpMemoryHeap (binder=0x4fe260), size=1048576, fd=-1 (Bad file number)
07-03 16:43:24.820: ERROR/JavaBinder(104): *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
07-03 16:43:24.820: ERROR/JavaBinder(104): java.lang.RuntimeException: No memory in memObj
07-03 16:43:24.820: ERROR/JavaBinder(104):     at android.database.CursorWindow.native_init(Native Method)
07-03 16:43:24.820: ERROR/JavaBinder(104):     at android.database.CursorWindow.<init>(CursorWindow.java:467)
07-03 16:43:24.820: ERROR/JavaBinder(104):     at android.database.CursorWindow.<init>(CursorWindow.java:27)
07-03 16:43:24.820: ERROR/JavaBinder(104):     at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:442)
07-03 16:43:24.820: ERROR/JavaBinder(104):     at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:445)
07-03 16:43:24.820: ERROR/JavaBinder(104):     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:95)
07-03 16:43:24.820: ERROR/JavaBinder(104):     at android.os.Binder.execTransact(Binder.java:287)
07-03 16:43:24.820: ERROR/JavaBinder(104):     at dalvik.system.NativeStart.run(Native Method)

展开
收起
Puppet 2020-01-20 09:33:45 489 0
1 条回答
写回答
取消 提交回答
  • 有时,当您不断通过模拟器重新安装应用程序时,由于android上的“取消链接”过程中存在错误,因此手机可能会耗尽内存。

    我遇到此错误:com.android.ddmlib.SyncException:打开的文件太多 -必须重新启动手机以释放内存。

    希望您在开发期间只需这样做一次或两次。祝好运!

    2020-01-20 09:33:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载