razerdp/BasePopup

Android Q 情况下追踪到的异常。

Closed this issue · 12 comments

  • 系统版本:Android 10

  • 库版本:2.2.1

  • 问题描述/重现步骤:
    在debug模式下 会报错,在release模式下正常。
    使用BasePopupWindow 实现了一个loadingDialog。
    打开主页时未报错,跳转页面时必报错。

  • 问题代码/截图:
    打断点情况下 跑到这必崩。
    image

  • 报错信息:
    java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available


1
我好像也留意到androidQ针对绕过灰名单的限制,不允许classloader为空来绕过了。这个问题暂时来说先留一下。。。

1
我好像也留意到androidQ针对绕过灰名单的限制,不允许classloader为空来绕过了。这个问题暂时来说先留一下。。。

不是百分百出现的,因为我所有的弹窗都是使用的BasePopup,在一些使用场景必现,一些场景没有问题。

咦,也就是说也有正常显示的情况吗

如果在android 10中正常显示过,那就跟灰名单可能影响不大,大概率识别的问题,,能否重试崩溃并提供更多信息呢

如果在android 10中正常显示过,那就跟灰名单可能影响不大,大概率识别的问题,,能否重试崩溃并提供更多信息呢

日志收到的信息就这么长,我最开始以为是Arouter的问题呢,打断点之后才发现是截图那一块引起的。

我在Android Q的模拟器上运行的时候发现一个调用隐藏方法引起的警告并且引起程序崩溃,但是没有捕捉到异常堆栈.警告信息如下:

Accessing hidden field Landroid/widget/PopupWindow;->mOnScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener; (greylist-max-p, reflection, denied)
image

华为手机Mate30,Android10.调用PictureSelector拍照方法好,调用BasePopupWindow会报错,也不知道什么原因.错误提示为java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

调用这个方法时就崩溃了
WindowManager windowManager = PopupReflectionHelper.getInstance().getPopupWindowManager(popupWindow)

该灰名单问题,新版已经修复。

发布正式版后将关闭此类问题。

666666

哇,这个地方好坑啊。。。。我重现的方式就是。。。卸载app重装就必定能重现。。。
我定位了好久才定位到是这个popup的问题。。尴尬