我正在使用Crittercism来跟踪我的应用程序中的崩溃。我遇到了一个我不知道如何处理的。
这是Crittersim日志:
<<p> 坠毁线程/strong>0
java.lang.IllegalArgumentException: View not attached to window manager
1
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:656)
2
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:349)
3
at android.view.WindowManagerImpl$CompatModeWrapper.removeView(WindowManagerImpl.java:160)
4
at android.widget.ZoomButtonsController.setVisible(ZoomButtonsController.java:407)
5
at android.widget.ZoomButtonsController$2.handleMessage(ZoomButtonsController.java:179)
6
at android.os.Handler.dispatchMessage(Handler.java:99)
7
at android.os.Looper.loop(Looper.java:137)
8
at android.app.ActivityThread.main(ActivityThread.java:5059)
9
at java.lang.reflect.Method.invokeNative(Native Method)
10
at java.lang.reflect.Method.invoke(Method.java:511)
11
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
12
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
13
at dalvik.system.NativeStart.main(Native Method)
27 other threads
线程:AsyncTask #4 (id=721, state=WAITING)
0
java.lang.Object.wait(Native Method)
1
java.lang.Thread.parkFor(Thread.java:1231)
2
sun.misc.Unsafe.park(Unsafe.java:323)
3
java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
4
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
5
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
6
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
7
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
8
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
9
java.lang.Thread.run(Thread.java:856)
线程:ImageContentLoader_Cache (id=709, state=RUNNABLE)
0
android.os.MessageQueue.nativePollOnce(Native Method)
1
android.os.MessageQueue.next(MessageQueue.java:125)
2
android.os.Looper.loop(Looper.java:124)
3
android.os.HandlerThread.run(HandlerThread.java:60)
线程:pool-4-thread-1 (id = 695,状态=等待)
0
java.lang.Object.wait(Native Method)
1
java.lang.Thread.parkFor(Thread.java:1231)
2
sun.misc.Unsafe.park(Unsafe.java:323)
3
java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
4
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
5
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
6
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
7
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
8
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
9
java.lang.Thread.run(Thread.java:856)
线程:Request worker Thread (id=707, state=RUNNABLE)
0
android.os.MessageQueue.nativePollOnce(Native Method)
1
android.os.MessageQueue.next(MessageQueue.java:125)
2
android.os.Looper.loop(Looper.java:124)
3
com.[XXXXXXX].android.services.ServerTalk.run(ServerTalk.java:2043)
4
java.lang.Thread.run(Thread.java:856)
只有一个引用到我的应用程序:
com。[XXXXXXX] .android.services.ServerTalk.run (ServerTalk.java: 2043)
导致这一行:
@Override
public void run()
{
Looper.prepare();
synchronized (this)
{
if (mCanRunLooper)
{
mLooper = Looper.myLooper();
mRequestHandler = new RequestThreadHandler();
}
else
{
return;
}
}
mEvent.open();
Looper.loop(); <----- [HERE]
}
这个ServerTalk是一个处理web请求的服务,被各种活动调用。问题是,没有任何活动在这里列出,事实上我的应用程序甚至没有在实际崩溃的线程中列出。这种崩溃发生了好几次,但我自己无法复制。我不知道这是什么。什么好主意吗?
"View not attached to window manager"意味着它在层次结构中不是活动视图。在堆栈的更远处,你可以看到"ZoomButtonsController.setVisible"。
你说ServerTalk是一个服务。为什么要在视图上调用方法?服务不能有UI