有沒有人能夠使用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