【问题标题】:Activity has leaked window android.widget.PopupWindow API 27Activity 已泄露窗口 android.widget.PopupWindow API 27
【发布时间】:2018-09-20 07:14:47
【问题描述】:

我有一个带有膨胀弹出菜单的简单 Activity。

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu,menu);

    return super.onCreateOptionsMenu(menu);
}

当我打开菜单并旋转时,出现以下错误:

Activity 已泄露窗口 android.widget.PopupWindow

E/WindowManager: android.view.WindowLeaked: Activity com.ehr.CompanyActivity 已泄露窗口 android.widget.PopupWindow$PopupDecorView{f8c5b6f VE..... ......ID 0,0-515,504}最初添加在 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:346) 的 android.view.ViewRootImpl.(ViewRootImpl.java:485) 的 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93) 的android.widget.PopupWindow.invokePopup(PopupWindow.java:1433) 在 android.widget.PopupWindow.showAsDropDown(PopupWindow.java:1284) 在 android.support.v7.widget.AppCompatPopupWindow.showAsDropDown(AppCompatPopupWindow.java:76) 在 android .support.v4.widget.PopupWindowCompat$PopupWindowCompatApi19Impl.showAsDropDown(PopupWindowCompat.java:115) 在 android.support.v4.widget.PopupWindowCompat.showAsDropDown(PopupWindowCompat.java:219) 在 android.support.v7.widget.ListPopupWindow.show (ListPopupWindow.java:733) 在 android.support.v7.view.menu.StandardMenuPopup.tryShow(StandardMenuPopup.jav a:176) 在 android.support.v7.view.menu.MenuPopupHelper.showPopup(MenuPopupHelper.java:289) 在 android.support.android.support.v7.view.menu.StandardMenuPopup.show(StandardMenuPopup.java:203) .v7.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:176) 在 android.support.v7.widget.ActionMenuPresenter$OpenOverflowRunnable.run(ActionMenuPresenter.java:805) 在 android.os.Handler.handleCallback(Handler.java :790) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6494) 在 java .lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)

它几乎是一个通用代码,我没有再写任何东西了。

【问题讨论】:

  • return 在您的onCreateOptionsMenu() 中在哪里
  • @NileshRathod 我更新了它
  • 你可以分享整个活动代码和整个error 问题
  • @NileshRathod 我编辑了它
  • 你必须试试这个return true

标签: android android-layout


【解决方案1】:

问题是您已经夸大了菜单,但您仍然返回了super.onCreateOptionsMenu(menu);。将返回值更改为true

@Override
public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.menu,menu);

     return true;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 2016-06-26
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多