有没有人能够使用TouchUtils
类提供的方法在Android模拟器上成功执行单元测试?
我能够让测试通过我的设备,但是当我在模拟器上运行完全相同的测试(和测试套件)时,任何使用TouchUtils
方法的测试都会引发以下异常:TouchUtils with Android Emulator
java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission
at android.os.Parcel.readException(Parcel.java:1327)
at android.os.Parcel.readException(Parcel.java:1281)
at android.view.IWindowManager$Stub$Proxy.injectPointerEvent(IWindowManager.java:1196)
at android.app.Instrumentation.sendPointerSync(Instrumentation.java:902)
at android.test.TouchUtils.drag(TouchUtils.java:786)
at android.test.TouchUtils.dragViewTo(TouchUtils.java:633)
...
我解锁了keyguard,甚至运行了其他(非TouchUtils)已通过的测试用例。
我没有应用@UiThreadTest
,我是否还需要运行任何需要在UI线程上运行的代码。
当我注释掉使用TouchUtils.dragViewTo(...)
的行并放入简单的assert(true)
时,测试运行并通过。
任何想法?
您是否找到答案?我也遇到了这个麻烦,并且没有太多可以找到的问题。 – Egor 2012-09-20 07:47:08