Emulator won't load 2.2 but will load 2.3
On a Windows XP system, using Eclipse 3.5, JDK 1.6.24, and the Android R10 SDK.
Like a number of others, I'm unable to get the emulator to load the home page, but this is happening only for the 2.2 image. I am able to get the emulator fully loaded and running with 2.3. I've tried waiting for a long period of time (I think 2 hours is more than enough), killing and restarting the adb server, etc.
The emulator is stuck in a reboot loop caused by the serverthread throwing a SIGSTKFLT signal. This is a signal that's not actually used by current versions of Linux but is sometimes thrown by app's to signal an application error. Unfortunately, there's no specific error message (at least that I can find) to indicate why the signal is being thrown. The pertinent part of the logcat is:
I/dalvikvm( 54): "android.server.ServerThread" prio=5 tid=7 RUNNABLE
I/dalvikvm( 54): | group="main" sCount=0 dsCount=0 s=N obj=0x43e31da0 self=0x11c9a8
I/dalvikvm( 54): | sysTid=69 nice=-2 sched=0/0 cgrp=default handle=1139800
I/dalvikvm( 54): | schedstat=( 62983168741 24276655402 1105 )
I/dalvikvm( 54): at java.lang.String.<init>(String.java:~468)
I/dalvikvm( 54): at java.util.jar.InitManifest.readValue(InitManifest.java:205)
I/dalvikvm( 54): at java.util.jar.InitManifest.readHeader(InitManifest.java:117)
I/dalvikvm( 54): at java.util.jar.InitManifest.initEntries(InitManifest.java:75)
I/dalvikvm( 54): at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:329)
I/dalvikvm( 54): at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:272)
I/dalvikvm( 54): at java.util.jar.JarFile.getInputStream(JarFile.java:392)
I/dalvikvm( 54): at android.content.pm.PackageParser.loadCertificates(PackageParser.java:337)
I/dalvikvm( 54): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:480)
I/dalvikvm( 54): at com.android.server.PackageManagerService.collectCertificatesLI(PackageManagerService.java:2535)
I/dalvikvm( 54): at com.android.server.PackageManagerService.scanPackageLI(PackageManagerService.java:2621)
I/dalvikvm( 54): at com.android.server.PackageManagerService.scanDirLI(PackageManagerService.java:2479)
I/dalvikvm( 54): at com.android.server.PackageManagerService.<init>(PackageManagerService.java:920)
I/dalvikvm( 54): at com.android.server.PackageManagerService.main(PackageManagerService.java:681)
I/dalvikvm( 54): at com.android.server.ServerThread.run(SystemServer.java:122)
I/dalvikvm( 54):
I/dalvikvm( 54): "Binder Thread #2" prio=5 tid=6 NATIVE
I/dalvikvm( 54): | group="main" sCount=1 dsCount=0 s=N obj=0x43e31a50 self=0x12fc60
I/dalvikvm( 54): | sysTid=60 nice=0 sched=0/0 cgrp=default handle=1294704
I/dalvikvm( 54): | schedstat=( 1000041725 990947204 173 )
I/dalvikvm( 54): at dalvik.system.NativeStart.run(Native Method)
I/dalvikvm( 54):
I/dalvikvm( 54): "Binder Thread #1" prio=5 tid=5 NATIVE
I/dalvikvm( 54): | group="main" sCount=1 dsCount=0 s=N obj=0x43e2f3b8 self=0x11ce48
I/dalvikvm( 54): | sysTid=59 nice=0 sched=0/0 cgrp=default handle=1165432
I/dalvikvm( 54): | schedstat=( 991350956 356395337 175 )
I/dalvikvm( 54): at dalvik.system.NativeStart.run(Native Method)
I/dalvikvm( 54):
I/dalvikvm( 54): "JDWP" daemon prio=5 tid=4 VMWAIT
I/dalvikvm( 54): | group="system" sCount=1 dsCount=0 s=N obj=0x43e2e2a0 self=0x11c5e0
I/dalvikvm( 54): | sysTid=58 nice=0 sched=0/0 cgrp=default handle=1146120
I/dalvikvm( 54): | schedstat=( 9625246 195868748 7 )
I/dalvikvm( 54): at dalvik.system.NativeStart.run(Native Method)
I/dalvikvm( 54):
I/dalvikvm( 54): "Signal Catcher" daemon prio=5 tid=3 VMWAIT
I/dalvikvm( 54): | group="system" sCount=1 dsCount=0 s=N obj=0x43e2e1e8 self=0x117b18
I/dalvikvm( 54): | sysTid=57 nice=0 sched=0/0 cgrp=default handle=1145544
I/dalvikvm( 54): | schedstat=( 4465371 1466668 2 )
I/dalvikvm( 54): at dalvik.system.NativeStart.run(Native Method)
I/dalvikvm( 54):
I/dalvikvm( 54): "HeapWorker" daemon prio=5 tid=2 VMWAIT
I/dalvikvm( 54): | group="system" sCount=1 dsCount=0 s=N obj=0x4306e1e8 self=0x1178d8
I/dalvikvm( 54): | sysTid=55 nice=0 sched=0/0 cgrp=default handle=1232848
I/dalvikvm( 54): | schedstat=( 3618171309 20811992594 393 )
I/dalvikvm( 54): at com.android.internal.os.BinderInternal$GcWatcher.finalize(BinderInternal.java:~48)
I/dalvikvm( 54): at dalvik.system.NativeStart.run(Native Method)
I/dalvikvm( 54):
D/dalvikvm( 54): threadid=7: sending two SIGSTKFLTs to threadid=2 (tid=55) to cause debuggerd dump
W/SharedBufferStack( 68): waitForCondition(DequeueCondition) timed out (identity=0, status=0). CPU may be pegged. trying again.
I/DEBUG ( 31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
D/dalvikvm( 54): Sent, pausing to let debuggerd run
I/DEBUG ( 31): Build fingerprint: 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys'
I/DEBUG ( 31): pid: 54, tid: 55 >>> system_server <<<
I/DEBUG ( 31): signal 16 (SIGSTKFLT), fault addr 00000036
I/DEBUG ( 31): r0 fffffe00 r1 00000080 r2 00000002 r3 00000000
I/DEBUG ( 31): r4 80888fe8 r5 00000002 r6 00000000 r7 000000f0
I/DEBUG ( 31): r8 00000001 r9 400091e8 10 80888c90 fp 001361b8
I/DEBUG ( 31): ip 80888098 sp 100ffcd8 lr afd10530 pc afd0eb08 cpsr 80000010
I/DEBUG ( 31): #00 pc 0000eb08 /system/lib/libc.so
I/DEBUG ( 31): #01 pc 0001052c /system/lib/libc.so
I/DEBUG ( 31): #02 pc 0001b77c /system/lib/libdvm.so
I/DEBUG ( 31): #03 pc 0001bc20 /system/lib/libdvm.so
I/DEBUG ( 31): #04 pc 00048ece /system/lib/libdvm.so
I/DEBUG ( 31): #05 pc 000143ac /system/lib/libdvm.so
I/DEBUG ( 31): #06 pc 0001e8c4 /system/lib/libdvm.so
I/DEBUG ( 31): #07 pc 0001d790 /system/lib/libdvm.so
I/DEBUG ( 31): #08 pc 00053eec /system/lib/libdvm.so
I/DEBUG ( 31): #09 pc 00054102 /system/lib/libdvm.so
I/DEBUG ( 31): #10 pc 0004a550 /system/lib/libdvm.so
I/DEBUG ( 31): #11 pc 0004a5ea /system/lib/libdvm.so
I/DEBUG ( 31): #12 pc 0004aada /system/lib/libdvm.so
I/DEBUG ( 31): #13 pc 00048174 /system/lib/libdvm.so
I/DEBUG ( 31): #14 pc 0001103c /system/lib/libc.so
I/DEBUG ( 31): #15 pc 00010b20 /system/lib/libc.so
I/DEBUG ( 31):
I/DEBUG ( 31): code around pc:
I/DEBUG ( 31): afd0eae8 0afffff7 e8bd4010 e12fff1e e1010090
I/DEBUG ( 31): afd0eaf8 e12fff1e e92d0090 e3a070f0 ef000000
I/DEBUG ( 31): afd0eb08 e8bd0090 e12fff1e e92d0090 e1a03002
I/DEBUG ( 31): afd0eb18 e1a02001 e3a01000 e3a070f0 ef000000
I/DEBUG ( 31): afd0eb28 e8bd0090 e12fff1e e92d0090 e1a02001
I/DEBUG ( 31):
I/DEBUG ( 31): code around lr:
I/DEBUG ( 31): afd10510 e3500000 0a00000e e3560000 03a07080
I/DEBUG ( 31): afd10520 13a07000 e3865002 ea000000 ebfff986
I/DEBUG ( 31): afd10530 e1a01004 e1a00005 ebfff96d e1560000
I/DEBUG ( 31): afd10540 e1a01007 e1a00004 e1a02005 e3a03000
I/DEBUG ( 31): afd10550 1afffff5 开发者_JS百科e3a00000 e8bd87f0 e3a00016
I/DEBUG ( 31):
I/DEBUG ( 31): stack:
I/DEBUG ( 31): 100ffc98 100ffcf8
I/DEBUG ( 31): 100ffc9c 00000003
I/DEBUG ( 31): 100ffca0 423bbb71 /data/dalvik-cache/system@framework@framework.jar@classes.dex
I/DEBUG ( 31): 100ffca4 4103afa8
I/DEBUG ( 31): 100ffca8 100ffcd8
I/DEBUG ( 31): 100ffcac 4103afa0
I/DEBUG ( 31): 100ffcb0 4103af8c
I/DEBUG ( 31): 100ffcb4 afd34300 /system/lib/libc.so
I/DEBUG ( 31): 100ffcb8 100ffcc0
I/DEBUG ( 31): 100ffcbc a811ad81 /system/lib/libutils.so
I/DEBUG ( 31): 100ffcc0 000497bc [heap]
I/DEBUG ( 31): 100ffcc4 00000000
I/DEBUG ( 31): 100ffcc8 100ffcf8
I/DEBUG ( 31): 100ffccc ad33e4ef /system/lib/libandroid_runtime.so
I/DEBUG ( 31): 100ffcd0 df002777
I/DEBUG ( 31): 100ffcd4 e3a070ad
I/DEBUG ( 31): #00 100ffcd8 80888fe8 /system/lib/libdvm.so
I/DEBUG ( 31): 100ffcdc 00000080
I/DEBUG ( 31): #01 100ffce0 80888fe8 /system/lib/libdvm.so
I/DEBUG ( 31): 100ffce4 00000001
I/DEBUG ( 31): 100ffce8 001178d8 [heap]
I/DEBUG ( 31): 100ffcec 00000022
I/DEBUG ( 31): 100ffcf0 00000018
I/DEBUG ( 31): 100ffcf4 400091e8 /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
I/DEBUG ( 31): 100ffcf8 80888c90 /system/lib/libdvm.so
I/DEBUG ( 31): 100ffcfc 8081b780 /system/lib/libdvm.so
D/dalvikvm( 54): Continuing
E/dalvikvm( 54): VM aborting
I/ServiceManager( 28): service 'batteryinfo' died
I/ServiceManager( 28): service 'entropy' died
I/ServiceManager( 28): service 'SurfaceFlinger' died
I/ServiceManager( 28): service 'usagestats' died
I/ServiceManager( 28): service 'power' died
I/ServiceManager( 28): service 'telephony.registry' died
D/BootAnimation( 68): SurfaceFlinger died, exiting...
I/DEBUG ( 31): debuggerd committing suicide to free the zombie!
D/Zygote ( 33): Process 54 terminated by signal (11)
I/Zygote ( 33): Exit zygote because system server (54) has terminated
E/installd( 35): eof
E/installd( 35): failed to read size
I/installd( 35): closing connection
I/ServiceManager( 28): service 'media.audio_flinger' died
I/ServiceManager( 28): service 'media.player' died
I/ServiceManager( 28): service 'media.camera' died
I/ServiceManager( 28): service 'media.audio_policy' died
I/ ( 80): ServiceManager: 0xacd0
D/AudioHardwareInterface( 80): setMode(NORMAL)
I/DEBUG ( 81): debuggerd: Jun 30 2010 13:59:20
D/AndroidRuntime( 82):
D/AndroidRuntime( 82): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime( 82): CheckJNI is ON
D/AndroidRuntime( 82): --- registering native functions ---
And then the whole thing runs through in an infinite loop of start/fault/dump/restart. I don't think this is a showstopper for me as I can target in 2.2 and run 2.3 in the emulator till it's time to load on a real 2.2 device. But it's something of an annoyance.
UPDATE
I was able to partially load froyo outside of eclipse using the command line. Starting it with "emulator @froyo -no-boot-anim -logcat '*:v'" it loaded as far as showing the top bar with the battery indicator. Omitting the logcat switch it started as far as showing the background before crashing. This looks more and more like a timing issue.
This is also now just happening on a laptop. When installed on one of my desktops Froyo comes up and is working. Both have the same speed CPU, but the laptop is a P4 2.2ghz with 1G memory and the desktop is a dual Xeon 2.2 with 2Gb memory. Both have similar application and service loads.
精彩评论