解决方案 »
- 关于Runtime.getRuntime().exec("su");
- 请问怎么动态切换tabHost的内容呢?
- Service里如何监听屏幕方向改变的动作
- 新4.0SDK怎么下载不到<sdk>/extras/android/support/v4/android-support-v4.jar.
- 对ViewFlipper熟的说一下该怎么用
- 下的源码MK项目怎么打开
- 关于音乐播放的一个问题
- android 建立文件的夹的路径问题 哪位大神帮新手看看
- html5等打包成的.apk文件遇到在华为, 中兴手机上卡顿, 兼容性问题, 求大神帮忙!
- 请教动态创建控件怎么等分排列
- Error in an XML file: aborting build. 求救哪错了,????
- 为什么在listview中按钮事件中加入对话框会报错?
new Thread(new Runnable() {
public void run() {
//这里写上你耗时的代码。
}
}).start();
Cmd line: system_serverDALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)
"main" prio=5 tid=1 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40022320 self=0xcf18
| sysTid=22336 nice=0 sched=0/0 cgrp=default handle=-1345006400
at com.android.server.SystemServer.init1(Native Method)
at com.android.server.SystemServer.main(SystemServer.java:912)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.Method)"Thread-328" prio=5 tid=76 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40c67e48 self=0x65eef8
| sysTid=4152 nice=0 sched=0/0 cgrp=default hZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native andle=4449896
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:119)
at android.os.Looper.loop(Looper.java:110)
at com.google.android.gsf.Gservices$1.run(Gservices.java:78)"java.lang.ProcessManager" daemon prio=5 tid=75 WAIT
| group="main" sCount=1 dsCount=0 obj=0x40bb7280 self=0xc9c140
| sysTid=2106 nice=0 sched=0/0 cgrp=default handle=10084168
at java.lang.Object.wait(Native Method)
- waiting on <0x40a92da8> (a java.util.HashMap)
at java.lang.Object.wait(Object.java:358)
at java.lang.ProcessManager.onExit(ProcessManager.java:139)
at java.lang.ProcessManager.watchChildren(Native Method)
at java.lang.ProcessManager$1.run(ProcessManager.java:85)"pool-1-thread-10" prio=5 tid=72 WAIT
| group="main" sCount=1 dsCount=0 obj=0x40a650b0 self=0x9488b0
| sysTid=22880 nice=0 sched=0/0 cgrp=default handle=7043960
at java.lang.Object.wait(Native Method)
- waiting on <0x40a65210> (a java.lang.VMThread)
at java.lang.Thread.parkFor(Thread.java:1424)
at java.lang.LangAccessImpl.parkFor(LangAccessImpl.java:48)
at sun.misc.Unsafe.park(Unsafe.java:337)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2016)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:411)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1021)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)"pool-1-thread-9" prio=5 tid=71 WAIT
| group="main" sCount=1 dsCount=0 obj=0x409c8410 self=0x409588
| sysTid=22879 nice=0 sched=0/0 cgrp=default handle=7043760
at java.lang.Object.wait(Native Method)
- waiting on <0x409c8570> (a java.lang.VMThread)
at java.lang.Thread.parkFor(Thread.java:1424)
at java.lang.LangAccessImpl.parkFor(LangAccessImpl.java:48)
at sun.misc.Unsafe.park(Unsafe.java:337)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2016)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:411)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1021)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)这个是其中一次导致zygote crash的时候system_server 的ANR
这个地址就比较值得考虑了。 正常用户端访问的进程,不会这么小的。
耗时处理和这个死法是不一样的。 dalvik的耗时处理,会让suspendThread不能成功,不能成功的话就无法做gc或其他一些事情,这时虚拟机会自己abort,abort的方法就是调用个内存非法写操作,最后的现象和你描述的有点类似,但原因绝对是不一样的。
我现在还遇到个问题,就是再调用Andorid GC(垃圾回收的相关函数处理的时候,就是dvmHeapMarkRootSet)这个函数时候,提示挂掉了。哎 真悲剧 不知道为什么 在标记root对象的时候会挂掉
在错误Error类,会定义了6的具体含义。