android searchbox,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

这一路的判断和处理,所以这种问题内部建议

不需要解决。

此资料(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值