More than 1 main menu entries -> crash lazarus / 43-Android ---------------------------------------------------------------------- Leledumbo · 2012-05-20 11:01 As a continuation of http://forum.lazarus.freepascal.org/index.php/topic,16942.0.html, and because I'm a bit impatience, I redesign the GUI a little so that it now only uses TMainMenu, TPaintBox and TLabel (and I think it's more Android in style), which is already implemented and now I end up in another problem. The form now appears, but when I try to open up the main menu, the application exits. Here's the stacktrace: QuoteI/ActivityManager(   61): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.pascal.lcltest/.LCLActivity } from pid 136 I/ActivityManager(   61): Start proc com.pascal.lcltest for activity com.pascal.lcltest/.LCLActivity: pid=404 uid=10034 gids={} I/javanesechess(  404): Trying to load libjavanesechess.so D/dalvikvm(  404): Trying to load lib /data/data/com.pascal.lcltest/lib/libjavanesechess.so 0x40514b10 D/dalvikvm(  404): Added shared lib /data/data/com.pascal.lcltest/lib/libjavanesechess.so 0x40514b10 I/lclapp  (  404): JNI_OnLoad called I/lclapp  (  404): Reading our Activity Class I/lclapp  (  404): JNI_OnLoad finished I/lclapp  (  404): LCLOnCreate called by LCLActivity.onCreate I/lclapp  (  404): [TCDWSCustomForm.ShowHide] First form layout adjustment lOldDPI=96 lNewDPI=240 lOldFormWidth=431 lNewFormWidth=100 I/lclapp  (  404): [LCLOnConfigurationChanged] i=0 lOldDPI=240 lNewDPI=240 lOldFormWidth=100 lNewFormWidth=480 D/dalvikvm(  404): GC_EXTERNAL_ALLOC freed 55K, 53% free 2556K/5379K, external 1625K/2137K, paused 41ms I/ActivityManager(   61): Displayed com.pascal.lcltest/.LCLActivity: +1s295ms (total +3m17s27ms) W/KeyCharacterMap(  404): No keyboard for id 0 W/KeyCharacterMap(  404): Using default keymap: /system/usr/keychars/qwerty.kcm.bin I/lclapp  (  404): onCreateOptionsMenu I/lclapp  (  404): onPrepareOptionsMenu I/lclapp  (  404): LCLOnMenuAction called kind=0 itemIndex=0 I/lclapp  (  404): LCLOnMenuAction item=0 I/lclapp  (  404): LCLOnMenuAction lJavaString=4051C980 Str=New javaObject_lclmenu_captions=4051C958 I/lclapp  (  404): LCLOnMenuAction item=1 I/lclapp  (  404): LCLOnMenuAction lJavaString=40514650 Str=Load javaObject_lclmenu_captions=4051C958 W/dalvikvm(  404): JNI WARNING: 0x4051c958 is not a valid JNI reference W/dalvikvm(  404):              in Lcom/pascal/lcltest/LCLActivity;.LCLOnMenuAction (II)I (SetObjectArrayElement) I/dalvikvm(  404): "main" prio=5 tid=1 RUNNABLE I/dalvikvm(  404):   | group="main" sCount=0 dsCount=0 obj=0x4001f1a8 self=0xce48 I/dalvikvm(  404):   | sysTid=404 nice=0 sched=0/0 cgrp=default handle=-1345006528 I/dalvikvm(  404):   | schedstat=( 621492032 490525409 102 ) I/dalvikvm(  404):   at com.pascal.lcltest.LCLActivity.LCLOnMenuAction(Native Method) I/dalvikvm(  404):   at com.pascal.lcltest.LCLActivity.onPrepareOption sMenu(LCLActivity.java:280) I/dalvikvm(  404):   at android.app.Activity.onPreparePanel(Activity.java:2174) I/dalvikvm(  404):   at com.android.internal.policy.impl.PhoneWindow.p reparePanel(PhoneWindow.java:332) I/dalvikvm(  404):   at com.android.internal.policy.impl.PhoneWindow.o penPanel(PhoneWindow.java:420) I/dalvikvm(  404):   at com.android.internal.policy.impl.PhoneWindow.o penPanel(PhoneWindow.java:396) I/dalvikvm(  404):   at android.app.Activity.openOptionsMenu(Activity.java:2340) I/dalvikvm(  404):   at com.pascal.lcltest.LCLActivity$LCLSurface.onKe yUp(LCLActivity.java:170) I/dalvikvm(  404):   at android.view.KeyEvent.dispatch(KeyEvent.java:1280) I/dalvikvm(  404):   at android.view.View.dispatchKeyEvent(View.java:3855) I/dalvikvm(  404):   at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) I/dalvikvm(  404):   at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) I/dalvikvm(  404):   at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) I/dalvikvm(  404):   at com.android.internal.policy.impl.PhoneWindow$D ecorView.superDispatchKeyEvent(PhoneWindow.java:1687) I/dalvikvm(  404):   at com.android.internal.policy.impl.PhoneWindow.s uperDispatchKeyEvent(PhoneWindow.java:1120) I/dalvikvm(  404):   at android.app.Activity.dispatchKeyEvent(Activity.java:2073) I/dalvikvm(  404):   at com.android.internal.policy.impl.PhoneWindow$D ecorView.dispatchKeyEvent(PhoneWindow.java:1663) I/dalvikvm(  404):   at android.view.ViewRoot.deliverKeyEventToViewHie rarchy(ViewRoot.java:2560) I/dalvikvm(  404):   at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2535) I/dalvikvm(  404):   at android.view.ViewRoot.handleMessage(ViewRoot.java:1867) I/dalvikvm(  404):   at android.os.Handler.dispatchMessage(Handler.java:99) I/dalvikvm(  404):   at android.os.Looper.loop(Looper.java:123) I/dalvikvm(  404):   at android.app.ActivityThread.main(ActivityThread.java:3683) I/dalvikvm(  404):   at java.lang.reflect.Method.invokeNative(Native Method) I/dalvikvm(  404):   at java.lang.reflect.Method.invoke(Method.java:507) I/dalvikvm(  404):   at com.android.internal.os.ZygoteInit$MethodAndAr gsCaller.run(ZygoteInit.java:839) I/dalvikvm(  404):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) I/dalvikvm(  404):   at dalvik.system.NativeStart.main(Native Method) I/dalvikvm(  404): E/dalvikvm(  404): VM aborting I/DEBUG   (   31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** I/DEBUG   (   31): Build fingerprint: 'generic/sdk/generic:2.3.3/GRI34/101070:eng/test-keys' I/DEBUG   (   31): pid: 404, tid: 404  >>> com.pascal.lcltest <<< I/DEBUG   (   31): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadd00d I/DEBUG   (   31):  r0 fffffec4  r1 deadd00d  r2 00000026  r3 00000000 I/DEBUG   (   31):  r4 800a45c0  r5 80085a94  r6 80085a94  r7 0000abe0 I/DEBUG   (   31):  r8 8003a37d  r9 41ad88c4  10 00000001  fp be81244c I/DEBUG   (   31):  ip 800a4720  sp be8122f0  lr afd19375  pc 80045a4a  cpsr 20000030 I/DEBUG   (   31):          #00  pc 00045a4a  /system/lib/libdvm.so I/DEBUG   (   31):          #01  pc 00037748  /system/lib/libdvm.so I/DEBUG   (   31):          #02  pc 000386ec  /system/lib/libdvm.so I/DEBUG   (   31):          #03  pc 0003871e  /system/lib/libdvm.so I/DEBUG   (   31):          #04  pc 00039a1c  /system/lib/libdvm.so I/DEBUG   (   31):          #05  pc 0003a3d6  /system/lib/libdvm.so I/DEBUG   (   31): I/DEBUG   (   31): code around pc: I/DEBUG   (   31): 80045a28 447a4479 ed0cf7d1 20004c09 ee34f7d1 I/DEBUG   (   31): 80045a38 447c4808 6bdb5823 d0002b00 49064798 I/DEBUG   (   31): 80045a48 700a2226 eea0f7d1 000436b7 00045275 I/DEBUG   (   31): 80045a58 0005eb82 fffffec4 deadd00d b510b40e I/DEBUG   (   31): 80045a68 4c0a4b09 447bb083 aa05591b 6b5bca02 I/DEBUG   (   31): I/DEBUG   (   31): code around lr: I/DEBUG   (   31): afd19354 b0834a0d 589c447b 26009001 686768a5 I/DEBUG   (   31): afd19364 220ce008 2b005eab 1c28d003 47889901 I/DEBUG   (   31): afd19374 35544306 d5f43f01 2c006824 b003d1ee I/DEBUG   (   31): afd19384 bdf01c30 000281a8 ffffff88 1c0fb5f0 I/DEBUG   (   31): afd19394 43551c3d a904b087 1c16ac01 604d9004 I/DEBUG   (   31): I/DEBUG   (   31): stack: I/DEBUG   (   31):     be8122b0  00000015  I/DEBUG   (   31):     be8122b4  afd18407  /system/lib/libc.so I/DEBUG   (   31):     be8122b8  afd4270c  /system/lib/libc.so I/DEBUG   (   31):     be8122bc  afd426b8  /system/lib/libc.so I/DEBUG   (   31):     be8122c0  00000000  I/DEBUG   (   31):     be8122c4  afd19375  /system/lib/libc.so I/DEBUG   (   31):     be8122c8  0000ce48  [heap] I/DEBUG   (   31):     be8122cc  afd183d9  /system/lib/libc.so I/DEBUG   (   31):     be8122d0  0000abe0  [heap] I/DEBUG   (   31):     be8122d4  0005eb82  [heap] I/DEBUG   (   31):     be8122d8  80085a94  /system/lib/libdvm.so I/DEBUG   (   31):     be8122dc  80085a94  /system/lib/libdvm.so I/DEBUG   (   31):     be8122e0  0000abe0  [heap] I/DEBUG   (   31):     be8122e4  afd18437  /system/lib/libc.so I/DEBUG   (   31):     be8122e8  0005eb82  [heap] I/DEBUG   (   31):     be8122ec  80045a39  /system/lib/libdvm.so I/DEBUG   (   31): #00 be8122f0  4051c958  /dev/ashmem/dalvik-heap (deleted) I/DEBUG   (   31):     be8122f4  8003774d  /system/lib/libdvm.so I/DEBUG   (   31): #01 be8122f8  4051c958  /dev/ashmem/dalvik-heap (deleted) I/DEBUG   (   31):     be8122fc  800386f1  /system/lib/libdvm.so D/Zygote  (   33): Process 404 terminated by signal (11) I/ActivityManager(   61): Process com.pascal.lcltest (pid 404) has died. E/InputDispatcher(   61): channel '4066b7f8 com.pascal.lcltest/com.pascal.lcltest.LCLActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x8 E/InputDispatcher(   61): channel '4066b7f8 com.pascal.lcltest/com.pascal.lcltest.LCLActivity (server)' ~ Channel is unrecoverably broken and will be disposed! I/WindowManager(   61): WIN DEATH: Window{4066b7f8 com.pascal.lcltest/com.pascal.lcltest.LCLActivity paused=false}Previously these menus are entries of submenu of single "Game" menu (and there was no other menus), and I can make it appear even though the handle doesn't seem to work (no submenu appear). Now I have "New", "Load", "Save" and "Exit" as main menu entries, but the above problem happens. ---------------------------------------------------------------------- felipemdc · 2012-06-08 09:06 Are you using the very latest code from the LCL and the .java file? I made some fixes some weeks ago in the menu code. ---------------------------------------------------------------------- Leledumbo · 2012-06-09 08:43 Yes, I took the one from svn (last update: yesterday), using the androidlcl example as the base. I'll try again tonight and post the latest source. EDIT: yep, still doesn't work, attached is the latest source. now it doesn't even show anything, crashes with stackoverflow at program start.