什么是E / AbstractTracker:无法在未调用Looper.prepare()的线程内创建处理程序?

时间:2017-08-22 22:00:15

标签: android multithreading android-looper

我过去遇到过这个问题而且我没有多想它,因为我只是在试验IDE。 但是,我已经意识到当我创建一个全新的应用程序时错误也出现了,即使我没有添加自己的代码我仍然会收到此错误,任何帮助都将不胜感激以解决此问题。

到目前为止,我已经尝试在UI线程和异步线程上运行方法,但仍然没有运气。

错误:

  

E / AbstractTracker:无法在未调用Looper.prepare()的线程内创建处理程序

     

D / AppTracker:应用事件:停止

     

E / AbstractTracker:无法在未调用Looper.prepare()的线程内创建处理程序

     

D / AppTracker:App事件:开始

1 个答案:

答案 0 :(得分:0)

您在问题中使用的服务类型或功能的详细信息不足。

但是我观察到当您使用新的SDK并在OnePlus One / Two上运行该应用程序时会发生这种情况。

您需要使用较低的SDK(<28),并将最低SDK设置为16。

如果您正在使用DeviceAdminPermission或任何内置接口来接收Broadcast,请删除UserHandler作为参数。该参数添加到SDK 29中,并创建一个单独的线程。