monkey测试 com.android.quicksearchbox 模块,出现 and

[DESCRIPTION]


monkey测试com.android.quicksearchbox (快速搜索)模块时,会遇到类似这样的Exception:
// CRASH: com.android.quicksearchbox (pid 1267)
// Short Msg: android.view.WindowManager$BadTokenException
// Long Msg: android.view.WindowManager$BadTokenException: Unable to add window --
token null is not valid; is your activity running?
// android.view.WindowManager$BadTokenException: Unable to add window -- token null is
not valid; is your activity running?
// at android.view.ViewRootImpl.setView(ViewRootImpl.JAVA:646)
// at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)
// at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
// at com.android.internal.policy.impl.PhoneWindow.openPanel(PhoneWindow.java:660)
// at com.android.internal.policy.impl.PhoneWindow.onKeyUpPanel(PhoneWindow.java:869)
// at com.android.internal.policy.impl.PhoneWindow.onKeyUp(PhoneWindow.java:1542)
// at
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.jav
a:1878)
// at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:4118)
// at android.view.ViewRootImpl.deliverKeyEvent(ViewRootImpl.java:4036)
// at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3526)
// at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4783)
// at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4743)
// at
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4895)
// at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:179)
// at android.os.MessageQueue.nativePollOnce(Native Method)
// at android.os.MessageQueue.next(MessageQueue.java:128)
// at android.os.Looper.loop(Looper.java:151)
// at android.app.ActivityThread.main(ActivityThread.java:5371)
// at java.lang.reflect.Method.invokeNative(Native Method)
// at java.lang.reflect.Method.invoke(Method.java:525)
// at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
// at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
// at dalvik.system.NativeStart.main(Native Method


[SOLUTION]


这是monkey issue,由monkey的测试机制导致。
Quicksearchbox 这个app从操作行为上来说,可以通过key event在下拉列表菜单中选中并切换
search activity,同时又可以通过key event(KEYCODE=82 MENU KEY)来叫起Menu popup window。
当这些key event不做任何判断、被随机发送给quick search box app时,如果恰好search
activity A叫起了menu popup window,然后又马上切换到search activity B,就会因为activity
A已经死掉,所以add menu popup window时就会因为找不到target activity而报出这样的JE。鉴于
monkey test的测试流程,会跳开framework input event的处理流程,不对activity的状态做任何
判断,就统统把key event直接发送给client端的activity,导致无法处理而报JE的结果。而正常操
作流程下,所有的Keyeven都会走framework input这一路,那么framework就会有机制对activity状
态做判断,然后才决定key event何去何从。
由于monkey test所走流程是跳开了framework input 这一路的判断和处理,所以这种问题内部建议
不需要解决。

 

 

 

此资料( monkey测试 com.android.quicksearchbox 模块,出现 and)转载于 一牛网
资料需要自己去下载,有需要的可以去论坛上面自己下载

posted @ 2016-04-08 14:30  16rd  阅读(735)  评论(0编辑  收藏  举报