您的位置:首页 > 移动开发 > Android开发

android.view.ViewRoot$W@47e0add0 is not valid; is your activity running?错误分析

2013-05-31 08:47 489 查看
出错信息:
android.view.WindowManager$BadTokenException:Unabletoaddwindow--tokenandroid.view.ViewRoot$W@47e0add0isnotvalid;isyouractivityrunning?atandroid.view.ViewRoot.setView(ViewRoot.java:505)atandroid.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)atandroid.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)atandroid.view.Window$LocalWindowManager.addView(Window.java:424)atandroid.widget.PopupWindow.invokePopup(PopupWindow.java:828)atandroid.widget.PopupWindow.showAtLocation(PopupWindow.java:688)atandroid.widget.CursorHandle.showCursorHandle(CursorHandle.java:295)atandroid.widget.CursorHandle$CheckCursorHandle$1.run(CursorHandle.java:691)atandroid.os.Handler.handleCallback(Handler.java:587)atandroid.os.Handler.dispatchMessage(Handler.java:92)atandroid.os.Looper.loop(Looper.java:123)atandroid.app.ActivityThread.main(ActivityThread.java:4627)atjava.lang.reflect.Method.invokeNative(NativeMethod)atjava.lang.reflect.Method.invoke(Method.java:521)atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)atdalvik.system.NativeStart.main(NativeMethod)



设备分布:



操作系统分布:









原因分析:

因为new对话框的时候,参数content指定成了this,即指向当前子Activity的content。但子Activity是动态创建的,不能保证一直存在。其父Activity的content是稳定存在的,所以有下面的解决办法。
将子Activity中的

setContentView(R.layout.m_result);

改为:ViewcontentView=LayoutInflater.from(getParent()).inflate(R.layout.m_result,null);setContentView(contentView);



其中:R.layout.m_result为布局文件





参考:http://blog.csdn.net/biangren/article/details/7514722




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐