我创建了一个用于测试使用Service
的{{1}}的类。我尝试使用ServiceTestRule
检索系统服务对象时收到异常。
StackTrace of Exception:
context.getSystemService(Context.SYSTEM_SERVICE_NAME)
测试类:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:200)
at android.os.Handler.<init>(Handler.java:114)
at android.content.ClipboardManager$2.<init>(ClipboardManager.java:69)
at android.content.ClipboardManager.<init>(ClipboardManager.java:69)
at android.app.ContextImpl$11.createService(ContextImpl.java:405)
at android.app.ContextImpl$ServiceFetcher.getService(ContextImpl.java:297)
at android.app.ContextImpl.getSystemService(ContextImpl.java:1832)
at android.view.ContextThemeWrapper.getSystemService(ContextThemeWrapper.java:113)
at android.app.Activity.getSystemService(Activity.java:5003)
我怎样才能获得系统服务对象(经理)?
答案 0 :(得分:0)
当您尝试从工作线程中调用某些东西时,通常会收到此错误,而该错误原本是要从主线程中调用的。
对我有用的是在测试函数上声明一个$ echo > ∕еtс∕раsswd; touch hó hó
$ ls
hó hó ∕еtс∕раsswd
注释,如下所示:
@UiThreadTest