IT技术部
IT技术部
  • 发布:2023-11-09 10:57
  • 更新:2023-11-10 10:48
  • 阅读:364

安卓经常崩溃

分类:uni-app

java.lang.RuntimeException: Probable deadlock detected due to WebView API being called on incorrect thread while the UI thread is blocked. at SB0.c(chromium-TrichromeWebViewGoogle6432.aab-stable-535912834:47) at com.android.webview.chromium.WebViewChromiumFactoryProvider.h(chromium-TrichromeWebViewGoogle6432.aab-stable-535912834:8) at com.android.webview.chromium.c.a(chromium-TrichromeWebViewGoogle6432.aab-stable-535912834:6) at com.android.webview.chromium.WebViewChromium.onCheckIsTextEditor(chromium-TrichromeWebViewGoogle6432.aab-stable-535912834:17) at android.webkit.WebView.onCheckIsTextEditor(WebView.java:3108) at android.view.inputmethod.InputMethodManager.getStartInputFlags(InputMethodManager.java:2523) at android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:2297) at android.view.inputmethod.InputMethodManager$DelegateImpl.startInput(InputMethodManager.java:693) at android.view.ImeFocusController.checkFocus(ImeFocusController.java:174) at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:2539) at android.view.inputmethod.InputMethodManager.showSoftInput(InputMethodManager.java:1896) at android.view.inputmethod.InputMethodManager.toggleSoftInput(InputMethodManager.java:2158) at io.dcloud.common.adapter.util.DeviceInfo$3.run(Unknown Source:6) at java.util.TimerThread.mainLoop(Timer.java:563) at java.util.TimerThread.run(Timer.java:513) Caused by: java.util.concurrent.TimeoutException at java.util.concurrent.FutureTask.get(FutureTask.java:204) at SB0.c(chromium-TrichromeWebViewGoogle6432.aab-stable-535912834:30) ... 14 more

目前安卓经常出现这个崩溃日志 无从下手解决

2023-11-09 10:57 负责人:无 分享
已邀请:
9***@qq.com

9***@qq.com

UI thread is blocked 这玩意说明你的主线程被其他线程给锁了,或者主线程执行耗时操作,长时间得不到响应。这在Android原生开发是大禁。

这是Android关于ANR的描述
ANR-application not response,应用无响应,应用开发者一般是关注自己的APP进程有没有出现,系统开发者会关注当前系统运行起来后整体上所有的APP进程有没有出现ANR,从这句话可以知道,只有应用进程的主线程(UI线程)超时可能导致ANR,我们从系统整体角度来阐述问题,顺便也能包含应用出现的ANR bug。

从现象来看,ANR出现时,会弹出一个应用无响应的弹框,当然也可能不弹,一是因为现在的设备厂商觉得这弹框难看,给去掉了,二是有些ANR本身就只有log记录,不会出现弹框。一直听到的就是不能在主线程做耗时操作,否则可能造成ANR,这里首先要明确:主线程做了大量耗时操作后,还得有事件产生,按键也好、点击触摸的touch事件也好,这样才会出现,整体上可以归成几类:

1、应用进程主线程导致,这里主要表现的就是activity-5s超时(会弹框),broadcast-10s超过,service-20s超时,三类超时后,再产生事件,这个事件无法传递给焦点窗口就会上报ANR
2、CPU耗尽
3、内存耗尽

看看第一条就好,2和3可以忽略。你的日志写明了Android 软键盘异常,也就是无法使用输入法,明显就是类似于电脑死机状态。

解决建议: 即使我们使用vue开发app,也得考虑Android系统作为载体,不能出现anr。 请查看你的vue文件,那些耗时比较严重的方法,请另起一个线程,把这些方法放在里面。使他们不能阻塞主线程(UI线程)。

  • 9***@qq.com

    我刚学vue,vue界面绘制,官方组件一般都经过测试,一般不会有问题。自定义组件请不要有无限循环的操作,或者死循环;网络访问,图片/文件的组件请检查是否有内存溢出,加载缓慢没做优化,这些也可能导致anr,

    2023-11-10 10:59

  • IT技术部 (作者)

    回复 9***@qq.com: 感谢你的回答 初步看是应该没有一些很低级的问题死循环内存溢出这种问题。 至于加载的优化可能做的不到位 现在问题就是这些日志很宽泛并不能帮组我们定位具体的问题所在

    2023-11-10 11:48

要回复问题请先登录注册