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;
00