Frameworks/Tools used for app development:
- jQuery Mobile 1.0.1
- PhoneGap 1.3
Device/s used used for testing:
- Lenovo Thinkpad (Android 3.1)
- Sony experia (Android 2.3)
Issue:
App will always crash when dynamically generating a page (jQuery Mobile) with list-view items (items 60+). This is the case only on Android 3.x, app works fine on Android 2.x.
<ul id="mk_activity" data-role="listview">
//the rows are added here dynamically
</ul>
On Android 3.x crash can be replicated every time the app refreshes the page with dynamically generated list-view.
Since the app works fine in Android 2.x and there are no issues when running the app on the browser I'm assuming that the issue has to be with Android 3.x.
Please someone shed some light on this issue, thanks in advance.
Here are the logs from logcat:
01-30 09:51:02.215: I//system/bin/fsck_msdos(29): Attempting to allocate 2032 KB for FAT
01-30 09:51:02.285: D/dalvikvm(146): GC_FOR_ALLOC freed 516K, 11% free 8127K/9095K, paused 69ms
01-30 09:51:02.445: D/dalvikvm(146): GC_CONCURRENT freed 4K, 5% free 8685K/9095K, paused 4ms+3ms
01-30 09:51:02.695: V/TLINE(146): new: android.text.TextLine@4063cde0
01-30 09:51:03.215: D/dalvikvm(146): GC_CONCURRENT freed 723K, 10% free 8756K/9671K, paused 3ms+97ms
01-30 09:51:03.475: D/dalvikvm(146): GC_FOR_ALLOC freed 350K, 9% free 8862K/9671K, paused 121ms
01-30 09:51:03.475: I/dalvikvm-heap(146): Grow heap (frag case) to 9.097MB for 342236-byte allocation
01-30 09:51:03.555: D/dalvikvm(146): GC_FOR_ALLOC freed <1K, 9% free 9196K/10055K, paused 67ms
01-30 09:51:03.705: D/dalvikvm(146): GC_FOR_ALLOC freed 348K, 9% free 9196K/10055K, paused 62ms
01-30 11:13:50.575: I/DEBUG(3107): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-30 11:13:50.575: I/DEBUG(3107): Build fingerprint: 'generic/sdk/generic:3.1/MASTER/123685:eng/test-keys'
01-30 11:13:50.575: I/DEBUG(3107): pid: 3123, tid: 3134 >>> e2o.mobile <<<
01-30 11:13:50.575: I/DEBUG(3107): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0081b000
01-30 11:13:50.575: I/DEBUG(3107): r0 008193a0 r1 0081aff4 r2 0000045c r3 00000000
01-30 11:13:50.575: I/DEBUG(3107): r4 00000000 r5 00000000 r6 00000028 r7 00000000
01-30 11:13:50.575: I/DEBUG(3107): r8 00000000 r9 00000000 10 00000000 fp 00000000
01-30 11:13:50.575: I/DEBUG(3107): ip 0081b000 sp 46ec98d0 lr a828894b pc aff0c998 cpsr 20000010
01-30 11:13:50.585: D/ShaderProgram(3123): couldn't load the vertex shader!
01-30 11:13:50.585: E/libEGL(3123): call to OpenGL ES API with no current context (logged once per thread)
01-30 11:13:50.585: D/ShaderProgram(3123): couldn't load the vertex shader!
01-30 11:13:51.545: I/DEBUG(3107): #00 pc 0000c998 /system/lib/libc.so (memcpy)
01-30 11:13:51.565: I/DEBUG(3107): #01 pc 00088948 /system/lib/libwebcore.so
01-30 11:13:51.565: I/DEBUG(3107): #02 pc 00082654 /system/lib/libwebcore.so
01-30 11:13:51.565: I/DEBUG(3107): #03 pc 00082754 /system/lib/libwebcore.so
... goes on
01-30 11:13:51.686: I/DEBUG(3107): #29 pc 000d284e /system/lib/libwebcore.so
01-30 11:13:51.695: I/DEBUG(3107): #30 pc 00284fd4 /system/lib/libwebcore.so
01-30 11:13:51.695: I/DEBUG(3107): #31 pc 002885cc /system/lib/libwebcore.so
01-30 11:13:51.705: I/DEBUG(3107): libc base address: aff00000
01-30 11:13:51.705: I/DEBUG(3107): code around pc:
01-30 11:13:51.705: I/DEBUG(3107): aff0c978 e0422003 e2522020 3a000008 e3c1c01f
01-30 11:13:51.715: I/DEBUG(3107): aff0c9b8 48b10300 28a000f0 48a00300 e1b0cf02
01-30 11:13:51.725: I/DEBUG(3107): code around lr:
01-30 11:13:51.725: I/DEBUG(3107): a8288928 30089302 99029003 42999b79 682fdbe6
01-30 11:13:51.725: I/DEBUG(3107): a8288938 9879ac5b 6ebc9400 9b049906 1c280042
01-30 11:13:51.725: I/DEBUG(3107): a8288948 980a47a0 4298ab0b f784d001 a85beea8
01-30 11:13:51.725: I/DEBUG(3107): a8288958 ee62f784 bdf0b073 e6f62700 95022500
01-30 11:13:51.725: I/DEBUG(3107): a8288968 9878e70a 9d7a4a0a 98050043 686f682e
01-30 11:13:51.725: I/DEBUG(3107): stack:
01-30 11:13:51.725: I/DEBUG(3107): 46ec9890 00000000
01-30 11:13:51.725: I/DEBUG(3107): 46ec9894 00818b00 [heap]
01-30 11:13:51.725: I/DEBUG(3107): 46ec9898 46ecbb54
01-30 11:13:51.725: I/DEBUG(3107): 46ec989c 00000178
01-30 11:13:51.725: I/DEBUG(3107): 46ec98a0 00000178
01-30 11:13:51.725: I/DEBUG(3107): 46ec98a4 0062a80c [heap]
goes on...
01-30 11:13:51.835: I/DEBUG(3107): 46ec9ac8 000000bc
01-30 11:13:51.835: I/DEBUG(3107): 46ec9acc 00000000
01-30 11:13:51.835: I/DEBUG(3107): 46ec9ad0 46ec9af8
01-30 11:13:51.835: I/DEBUG(3107): 46ec9ad4 a8282659 /system/lib/libwebcore.so
01-30 11:13:53.265: D/dalvikvm(3123): GC_CONCURRENT freed 655K, 10% free 8079K/8903K, paused 3ms+4ms
01-30 11:13:56.335: D/dalvikvm(287): GC_EXPLICIT freed 8K, 10% free 6245K/6919K, paused 3ms+155ms
01-30 11:14:00.695: D/dalvikvm(260): GC_EXPLICIT freed 18K, 7% free 6344K/6791K, paused 3ms+173ms
01-30 11:14:02.925: I/BootReceiver(80): Copying /data/tombstones/tombstone_01 to DropBox (SYSTEM_TOMBSTONE)
01-30 11:14:03.446: D/dalvikvm(80): GC_CONCURRENT freed 2109K, 49% free 13814K/26823K, paused 8ms+40ms
01-30 11:14:03.985: I/Web Console(3123): QONTEXT starting checkalerts at file:///android_asset/www/static/javascript/initializer.js:1012
01-30 11:14:04.056: D/ShareImage:action=(3123): shareimage
01-30 11:14:04.755: I/Web Console(3123): QONTEXT https://pramati.qontext.com/notifications/feeds/network/2010122447649?type=plain&start=0&startIndex=0&count=20&csrf-token=434defd5553d10a02b0c70bdfa7a934d ==TIME:11:14:4 at file:///android_asset/www/static/javascript/initializer.js:1012
01-30 11:14:07.595: D/dalvikvm(3123): GC_CONCURRENT freed 474K, 9% free 8135K/8903K, paused 4ms+4ms
01-30 11:14:09.665: D/dalvikvm(146): GC_EXPLICIT freed 18K, 20% free 20228K/25031K, paused 4ms+337ms
01-30 11:14:10.535: I/Web Console(3123): QONTEXT https://pramati.qontext.com/notifications/feeds/network/2010122447649?type=plain&start=20&startIndex=20&count=20&csrf-token=434defd5553d10a02b0c70bdfa7a934d ==TIME:11:14:10 at file:///android_asset/www/static/javascript/initializer.js:1012
01-30 11:14:10.967: D/Zygote(33): Process 3123 terminated by signal (11)
01-30 11:14:10.975: I/ActivityManager(80): Process e2o.mobile (pid 3123) has died.
01-30 11:14:10.995: E/InputDispatcher(80): channel '41069718 e2o.mobile/e2o.mobile.Home (server)' ~ Consumer closed input channel or an error occurred. events=0x8
01-30 11:14:10.995: E/InputDispatcher(80): channel '41069718 e2o.mobile/e2o.mobile.Home (server)' ~ Channel is unrecoverably broken and will be disposed!
01-30 11:14:11.005: I/WindowManager(80): WIN DEATH: Window{41069718 e2o.mobile/e2o.mobile.Home paused=false}
01-30 11:14:11.015: I/WindowManager(80): WINDOW DIED Window{41069718 e2o.mobile/e2o.mobile.Home paused=false}
01-30 11:14:11.126: W/InputManagerService(80): Got RemoteException sending setActive(false) notification to pid 3123 uid 10036
The name of my app is e2o.mobile. The app is killed after getting a SIGSEGV.
EDIT: on some digging into, it seems that the bug is related to the structure of my row elements of my list. if i print 1000 plain rows with text it doesn't crash. Here is the structure of my row-
<li data-theme="c" class="ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-btn-hover-c ui-btn-up-c">
<div class="ui-btn-inner ui-li" aria-hidden="true">
<div class="ui-btn-text">
<a class="f-item ui-link-inherit" href="javascript:void(0);" >
<p class="ui-li-heading f_feed_title f_l_indent ui-li-desc">abc</p>
<p class="ui-li-desc f_feed_desc f_l_indent">asadasd</p>
<div class="f_detail_ctr f_l_indent">
<p class="f_feed_desc f_c_margin ui-li-desc">
<span class="f_qw">1
<span class="f_icon "></span>
</span>
</p>
</div>
<img src="82b.jpg" class="ui-li-icon ui-li-thumb f_u_icon">
</a>
</div>
<span class="ui-icon ui-icon-arrow-r ui-icon-shadow"></span>
</div>
</li>