Невозможно добавить окно при добавлении нового фрагмента - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь показать фрагмент в действии, и поверх веб-просмотра открывается. В API29 нет проблем, но если я протестирую его в API21-API23, он завершится неудачно, возвращая меня.

W/System.err: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:566)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:272)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
    at android.app.Dialog.show(Dialog.java:298)
    at com.android.org.chromium.content.browser.input.SelectPopupDialog.show(SelectPopupDialog.java:126)
    at com.android.org.chromium.content.browser.ContentViewCore.showSelectPopup(ContentViewCore.java:2467)
    at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
    at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:28)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5221)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Я не использую диалог, поэтому я не понимаю это сообщение. Я загружаю фрагмент следующим кодом.

CommonSpinnerDialogFragment commonSelector = CommonSpinnerDialogFragment.newInstance(
                getSpinnerItemModels(models)
                , getCommonSpinnerItemSelectionListener()
                , title
        );

        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        Fragment prev = getSupportFragmentManager().findFragmentByTag("CommonSelector");
        if (prev != null) {
            ft.remove(prev);
        }
        ft.addToBackStack(null);
        ft.add(mContainerFragments.getId(), commonSelector,"CommonSelector");
        try {
            ft.commit();
        } catch (Exception e) {
            String methodName = new Object() {
            }.getClass().getEnclosingMethod().getName();
            ExceptionHandlerManager.printExceptionMessage(getActivity().getClass().getSimpleName(), methodName, e);
            ft.commitAllowingStateLoss();
        }

Я не знаю, что я делаю неправильно. Это расстраивает.

Спасибо

...