BadTokenException

来源:11-7 外置插件下载功能(中)

qq_卜痕_0

2022-09-23

宿主调用插件中的fragment是,当fragment包含自定义dialog时,弹出框无效并报错。dialog需要依附与activity,而插件里面是有fragment,没有ativity。
MusicListDialog dialog = new MusicListDialog(mContext);
dialog.show();
异常日志:
android.view.WindowManager$BadTokenException: Unable to add window – token null is not for an application
at android.view.ViewRootImpl.setView(ViewRootImpl.java:588)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:313)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:86)
at android.app.Dialog.show(Dialog.java:322)

RePlugin.getPluginContext() 使用了这个context的,以为要去加载插件里面布局文件,当调用show方法的时候就报错了。

写回答

1回答

qndroid

2022-11-15

一般这种问题,都是要使用宿主的context; 可以在创建dialog的时候,传宿主的context进去; 插件的context只在完全全使用插件内部的资源的时候,才可以使用;全局context才是真正系统可识别的context;

0
0

还原大厂App重构过程 完成企业级项目重构

真实还原大厂App重构过程,进击高级工程师必备

448 学习 · 57 问题

查看课程