Closed cxincx closed 6 months ago
@cxincx 小伙子,你这是修改了我的框架代码吧?
@getActivity 没有的,直接依赖的组件:api 'com.github.getActivity:Toaster:12.3'
小伙子,我看了一下 12.3 版本的代码,ActivityToast 肯定是不会去调用 GlobalToast 的,不信你可以翻源码看一下。
小伙子,我看了一下 12.3 版本的代码,ActivityToast 肯定是不会去调用 GlobalToast 的,不信你可以翻源码看一下。
那是bugly自动解析的问题,原始日志如下,调用的是GlobalToast的show,在mShowRunnable中出现的异常
android.view.WindowManager$InvalidDisplayException Unable to add window android.view.ViewRootImpl$W@913e4 -- the specified display can not be found android.view.ViewRootImpl.setView(ViewRootImpl.java:1733) android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:451) android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:325) android.view.WindowManagerImpl.addView(WindowManagerImpl.java:176) i5.i.run(SourceFile:93) i5.b.show(SourceFile:66)
被混淆的3行代码分别是:ToastStrategy#ShowToastRunnable -> GlobalToast#show -> ToastImpl#mShowRunnable,是直接依赖的组件,没有进行任何修改
小伙子,从你目前提供的信息来分析,加上无法复现,我无法判断这个问题的具体原因,请提供更多的信息,例如:发生崩溃时的日志,复现步骤等等有用的信息。
小伙子,从你目前提供的信息来分析,加上无法复现,我无法判断这个问题的具体原因,请提供更多的信息,例如:发生崩溃时的日志,复现步骤等等有用的信息。
确实没有明确的复现路径,更大概率是系统的BUG。目前该异常都是出现在Android 14的小米设备上,应该是小米澎湃在特定场景下会出现该问题,是否可以考虑先catch住?如果能更进一步,在出现特殊异常导致悬浮窗显示失败时使用系统toast代替就更好了
@cxincx 小伙子,不是所有的崩溃都去 try catch,这样做崩溃数据是好看了,但同时问题也会被掩盖,这不是好的解决方案,另外从你刚刚的描述来分析,基本能确定是小米澎湃系统的 bug,我这边建议你先反馈给小米官方处理。
两边都有反馈的,但系统进行排查和修复的周期会比较长,甚至可能不修复。由于该问题【已经】在线上出现,有上百台设备受影响,所以希望框架可以先兼容一下。catch并不是为了追求数据好看,而是不希望用户在操作过程中由于toast提示导致应用闪退,数据丢失的体验是非常糟糕的,希望可以采纳。
@cxincx 小伙子,你用上面的包应该可以解决你的燃眉之急,至于这个改动要不要纳入到主线分支中,我还得仔细斟酌一下。
好的,谢谢
@cxincx 小伙子,经过慎重考虑,最终还是不考虑将这个改动纳入到主线分支中,这是因为一旦对所有的异常进行 try catch,那么就引发另外一个问题,厂商的 Framework 工程师一些改动导致的崩溃,将会被掩盖,虽然应用不崩溃了,但是 Toast 不显示了同样是一个问题,如果应用不崩溃,那么将无法引起厂商的重视。
@getActivity 可以考虑单独对 InvalidDisplayException 这个异常处理一下,不用全部catch
@cxincx 小伙子,你提供一下这个 Bug 崩溃的情况,崩溃总次数、崩溃影响设备数、崩溃占比、崩溃趋势
@cxincx 小伙子,你如果没办法提供这些数据,我将无法做出有效的决策。
超过一个星期没有响应,自动关闭此 issue。
框架版本【必填】
12.3
问题描述【必填】
最近出现了大量此异常,在添加全局悬浮窗toast时出现,均发生在Android 14设备上。
android.view.WindowManager$InvalidDisplayException Unable to add window android.view.ViewRootImpl$W@8265f91 -- the specified display can not be found android.view.ViewRootImpl.setView(ViewRootImpl.java:1752) android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:435) android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:324) android.view.WindowManagerImpl.addView(WindowManagerImpl.java:175) com.hjq.toast.ToastImpl$1.void run()(ToastImpl.java:0) com.hjq.toast.ToastImpl$1.void run$bridge()(ToastImpl.java:0) com.hjq.toast.ToastImpl.void show()(ToastImpl.java:0) com.hjq.toast.GlobalToast.void show()(GlobalToast.java:0) com.hjq.toast.ActivityToast.void show$bridge()(ActivityToast.java:0) com.hjq.toast.ToastStrategy$ShowToastRunnable.void run()(ToastStrategy.java:0)
复现步骤【必填】
bugly收集,暂无明确复现路径
是否必现【必填】
否
项目 targetSdkVersion【必填】
34
出现问题的手机信息【必填】
小米
出现问题的安卓版本【必填】
14
问题信息的来源渠道【必填】
Bugly 看到的
是部分机型还是所有机型都会出现【必答】
Android 14
框架最新的版本是否存在这个问题【必答】
是
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
是
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
是
是否可以通过 Demo 来复现该问题【必答】
否
提供报错堆栈
提供截图或视频
No response
提供解决方案
No response