java.lang.IllegalStateException: No activity
来源:互联网 发布:单片机uart是什么意思 编辑:程序博客网 时间:2024/05/01 17:51
错误提示:
Java.lang.IllegalStateException: No activity
at Android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1075)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1861)
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1474)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:931)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
.......
这个问题是在解决上一篇文章(http://blog.csdn.net/leewenjin/article/details/19409863)中指出的问题后出现的。问题解决方法是参考文章:
http://stackoverflow.com/questions/15207305/getting-the-error-java-lang-illegalstateexception-activity-has-been-destroyed
bug出现的原理问题及解决方法是
This seems to be a bug in the newly added support for nested fragments. Basically, the child FragmentManager ends up with a broken internal state when it is detached from the activity. A short-term workaround that fixed it for me is to add the following to onDetach() of every Fragment which you call getChildFragmentManager() on:
解决方法重写onDetach()
- @Override
- public void onDetach() {
- super.onDetach();
- try {
- Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
- childFragmentManager.setAccessible(true);
- childFragmentManager.set(this, null);
- } catch (NoSuchFieldException e) {
- throw new RuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- }
- }
其中的Field 是
java.lang.reflect.Field
引起bug的原因
If you look at the implementation of Fragment, you'll see that when moving to the detached state, it'll reset its internal state. However, it doesn't reset mChildFragmentManager (this is a bug in the current version of the support library). This causes it to not reattach the child fragment manager when the Fragment is reattached, causing the exception you saw.
- java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No activity
- android Java.lang.IllegalStateException: No activity 解决方法
- 单例 fragment getChildFragmentManager java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No host
- java.lang.IllegalStateException: No host
- java.lang.IllegalStateException:No host
- fragment跳转到Activity的错误,java.lang.IllegalStateException: No activity
- java.lang.IllegalStateException: No match found错误
- java.lang.IllegalStateException: No wrapped connection.
- java.lang.IllegalStateException: No output folder
- ERROR:java.lang.IllegalStateException: No output folder
- 导读ICML2016 - Learning Convolutional Neural Networks for Graphs
- NodeJS 跨语言子进程持续通讯
- 羽毛球单打和双打的有效边界区域
- 地图与定位(一)定位服务
- 关于Android studio导入百度地图API的方法
- java.lang.IllegalStateException: No activity
- 朝鮮歷史筆寫本原稿 (韓長庚編)
- WINDOWS中NEXUS的安装使用【ATCO整理】
- Android水波纹特效的简单实现
- CentOS 6.5 安装与配置LAMP FTP
- 后台分页实现方式总结
- JQ-has和hasClass
- Java Annotation
- 编程之美:扫雷的概率