在Windows XP系统上,使用Eclipse 3.5,JDK 1.6.24和Android R10 SDK。
与其他许多人一样,我无法让模拟器加载主页,但这只发生在2.2图像上。我可以让模拟器完全加载并运行2.3。我已经尝试了很长一段时间(我认为2小时绰绰有余),杀死并重新启动adb服务器等等。
模拟器卡在由serverthread抛出SIGSTKFLT信号引起的重启循环中。这是当前版本的Linux实际上没有使用的信号,但有时会被应用程序抛出以发出应用程序错误信号。不幸的是,没有特定的错误消息(至少我可以找到)来指示信号被抛出的原因。 logcat的相关部分是:
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 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 ---
然后整个事情在start / fault / dump / restart的无限循环中运行。 我不认为这对我来说是一个showstopper,因为我可以在2.2中定位并在模拟器中运行2.3,直到它加载到真正的2.2设备上。但这有点令人烦恼。
更新
我能够使用命令行在eclipse之外部分加载froyo。从“模拟器@froyo -no-boot-anim -logcat'*:v'”开始加载,直到显示带有电池指示器的顶部栏。省略了logcat开关,只要在崩溃前显示背景就开始了。这看起来越来越像一个时间问题。
现在这也正好发生在笔记本电脑上。安装在我的桌面上时,Froyo出现并正在运行。两款都拥有相同的CPU速度,但是笔记本电脑是带有1G内存的P4 2.2ghz,桌面是带有2Gb内存的双Xeon 2.2。两者都有类似的应用程序和服务负载。