提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)
com.hjq.easy.demo E Work [ id=0e9becef-0e14-4d66-9c9c-a4749fe6af7e, tags={ com.hjq.easy.demo.work.DataWorker } ] failed because it threw an exception/error
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Method addObserver must be called on the main thread
at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)
at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: Method addObserver must be called on the main thread
at androidx.lifecycle.LifecycleRegistry.enforceMainThreadIfNeeded(LifecycleRegistry.java:317)
at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.java:172)
at com.hjq.http.lifecycle.HttpLifecycleManager.bind(HttpLifecycleManager.java:22)
at com.hjq.http.callback.BaseCallback.(BaseCallback.java:38)
at com.hjq.http.callback.NormalCallback.(NormalCallback.java:38)
at com.hjq.http.request.HttpRequest.lambda$request$0$HttpRequest(HttpRequest.java:322)
at com.hjq.http.request.-$$Lambda$HttpRequest$_S0R71tFgS0PSg696EUWjBemKxo.run(Unknown Source:6)
at com.hjq.http.request.HttpRequest.request(HttpRequest.java:330)
at com.hjq.easy.demo.work.DataWorker.registerDev(DataWorker.java:51)
at com.hjq.easy.demo.work.DataWorker.doWork(DataWorker.java:40)
at androidx.work.Worker$1.run(Worker.java:86)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】
问题描述
框架版本【必填】:11.5
问题描述【必填】:jetpack workManager 无法运行
复现步骤【必填】: 在demo 中加入 jetpack workManager 调用easyhttp 接口。下方有代码
EasyHttp-work.zip
public class DataWorker extends Worker implements OnHttpListener{
是否必现【必填】:是
出现问题的手机信息【必填】:3399
出现问题的安卓版本【必填】:8.1
问题信息的来源渠道【必填】:自己遇到的
请回答
是部分机型还是所有机型都会出现【必答】:部分/
框架最新的版本是否存在这个问题【必答】:是
是否已经查阅框架文档还未能解决的【必答】:是/
issue 是否有人曾提过类似的问题【必答】:否
是否可以通过 Demo 来复现该问题【必答】:是
这个问题是不是后台自己的问题导致的【必答】:否
其他
提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来) com.hjq.easy.demo E Work [ id=0e9becef-0e14-4d66-9c9c-a4749fe6af7e, tags={ com.hjq.easy.demo.work.DataWorker } ] failed because it threw an exception/error java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Method addObserver must be called on the main thread at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516) at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475) at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311) at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764) Caused by: java.lang.IllegalStateException: Method addObserver must be called on the main thread at androidx.lifecycle.LifecycleRegistry.enforceMainThreadIfNeeded(LifecycleRegistry.java:317) at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.java:172) at com.hjq.http.lifecycle.HttpLifecycleManager.bind(HttpLifecycleManager.java:22) at com.hjq.http.callback.BaseCallback.(BaseCallback.java:38)
at com.hjq.http.callback.NormalCallback.(NormalCallback.java:38)
at com.hjq.http.request.HttpRequest.lambda$request$0$HttpRequest(HttpRequest.java:322)
at com.hjq.http.request.-$$Lambda$HttpRequest$_S0R71tFgS0PSg696EUWjBemKxo.run(Unknown Source:6)
at com.hjq.http.request.HttpRequest.request(HttpRequest.java:330)
at com.hjq.easy.demo.work.DataWorker.registerDev(DataWorker.java:51)
at com.hjq.easy.demo.work.DataWorker.doWork(DataWorker.java:40)
at androidx.work.Worker$1.run(Worker.java:86)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
提供截图或视频(根据需要提供,此项不强制)
提供解决方案(如果已经解决了的话,此项不强制)