Java Android ICS拼写错误更正导致PopupWindow崩溃

Java Android ICS拼写错误更正导致PopupWindow崩溃,java,android,user-interface,widget,Java,Android,User Interface,Widget,在我们的应用程序中,我们有一个自定义的弹出窗口。它在2.2->4.0.3无挂接的情况下完美工作。如果您在弹出窗口的编辑文本中拼错了ICS中的一个单词,并单击该单词让android尝试更正,则应用程序每次都会立即崩溃,但出现以下异常: E/AndroidRuntime(13275): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@4292

在我们的应用程序中,我们有一个自定义的弹出窗口。它在2.2->4.0.3无挂接的情况下完美工作。如果您在弹出窗口的编辑文本中拼错了ICS中的一个单词,并单击该单词让android尝试更正,则应用程序每次都会立即崩溃,但出现以下异常:

E/AndroidRuntime(13275): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@42929b28 is not valid; is your activity running?
E/AndroidRuntime(13275):    at android.view.ViewRootImpl.setView(ViewRootImpl.java:515)
E/AndroidRuntime(13275):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:279)
E/AndroidRuntime(13275):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:193)
E/AndroidRuntime(13275):    at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:118)
E/AndroidRuntime(13275):    at android.view.Window$LocalWindowManager.addView(Window.java:537)
E/AndroidRuntime(13275):    at android.widget.PopupWindow.invokePopup(PopupWindow.java:988)
E/AndroidRuntime(13275):    at android.widget.PopupWindow.showAtLocation(PopupWindow.java:845)
E/AndroidRuntime(13275):    at android.widget.PopupWindow.showAtLocation(PopupWindow.java:809)
E/AndroidRuntime(13275):    at android.widget.TextView$PinnedPopupWindow.updatePosition(TextView.java:9517)
E/AndroidRuntime(13275):    at android.widget.TextView$PinnedPopupWindow.show(TextView.java:9474)
E/AndroidRuntime(13275):    at android.widget.TextView$SuggestionsPopupWindow.show(TextView.java:9718)
E/AndroidRuntime(13275):    at android.widget.TextView.showSuggestions(TextView.java:10010)
E/AndroidRuntime(13275):    at android.widget.TextView.onTouchEvent(TextView.java:8319)
E/AndroidRuntime(13275):    at android.view.View.dispatchTouchEvent(View.java:5486)
E/AndroidRuntime(13275):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
E/AndroidRuntime(13275):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
E/AndroidRuntime(13275):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
E/AndroidRuntime(13275):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
E/AndroidRuntime(13275):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
E/AndroidRuntime(13275):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
E/AndroidRuntime(13275):    at android.widget.PopupWindow$PopupViewContainer.dispatchTouchEvent(PopupWindow.java:1576)
E/AndroidRuntime(13275):    at android.view.View.dispatchPointerEvent(View.java:5662)
E/AndroidRuntime(13275):    at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2863)
E/AndroidRuntime(13275):    at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
E/AndroidRuntime(13275):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(13275):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(13275):    at android.app.ActivityThread.main(ActivityThread.java:4340)
E/AndroidRuntime(13275):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(13275):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(13275):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(13275):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime(13275):    at dalvik.system.NativeStart.main(Native Method)
这是引发异常的源文件:

这条线总是导致它:

res = sWindowSession.add(mWindow, mSeq, mWindowAttributes, getHostVisibility(), mAttachInfo.mContentInsets,mInputChannel);
问题是sWindowSession是服务的接口,我找不到服务的实现?(http://130.75.2.12/source/xref/android/4.0.3/frameworks-base/core/java/android/view/IWindowSession.aidl)


有没有人知道有关服务本身的信息,或者我们在这里遇到异常的原因

如果你没有其他的想法,你可能会看到你可以做一个最小的例子来体验这个崩溃。从我所能发现的,问题是任何弹出窗口作为一个孩子从另一个弹出窗口派生。我能够在FroYo Galaxy选项卡上实现这一点。自从我将Galaxy Note文本设备从android 2.2更新到4.0.3以来,我也有同样的错误,下拉微调器和editText的错误消息都会在调用PopupWindow时生成错误。对这个问题的任何更新,也都可能会带来一些爱