我在crashlytics面板上看到这个错误:
Fatal Exception: java.lang.NoSuchMethodError
android.support.v4.app.FragmentActivity.isChangingConfigurations
com.hannesdorfmann.mosby.mvp.MvpFragment.shouldInstanceBeRetained (MvpFragment.java:91)
com.hannesdorfmann.mosby.mvp.delegate.MvpInternalDelegate.detachView (MvpInternalDelegate.java:70)
com.hannesdorfmann.mosby.mvp.delegate.FragmentMvpDelegateImpl.onDestroyView (FragmentMvpDelegateImpl.java:73)
com.hannesdorfmann.mosby.mvp.MvpFragment.onDestroyView (MvpFragment.java:106)
com.hannesdorfmann.mosby.mvp.MvpFragment.shouldInstanceBeRetained (MvpFragment.java:91)我重写了manifest以便在api level 10上使用它,并且我已经在Android2.3.3上测试了它,它工作得很好!但现在我在crashlytics上看到了这个崩溃。嗨,我可以为我的版本解决这个问题吗?crash是否与api 10相关?因为这个方法是针对support v4库的,所以我不明白为什么会发生这种情况。
发布于 2016-09-28 17:59:36
是的,在API11中引入了isChangingConfigurations()方法:https://developer.android.com/reference/android/app/Activity.html#isChangingConfigurations()
作为android.app.Activity plattform类的一部分(不是作为android.support.v4.app.FragmentActivity的一部分,而是作为FragmentActivity extends Activity的一部分)。
因此,这在API < 11上不起作用。
你可以在你的活动中实现isChangingConfigurations(),如果>=11接口调用super.isChangingConfigurations(),或者如果(API < 11)实现你自己的东西。你可能想看看活动的源代码,但我不确定这是如何被移植回来的。https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/Activity.java#L5152
如果API < 11,可以尝试只返回false。这将意味着View的状态(和Presenter)将不会在屏幕方向更改后继续存在。免责声明:这也可能导致其他一些我现在不知道的副作用,并可能破坏任何未来版本的Mosby或支持库。
https://stackoverflow.com/questions/39725950
复制相似问题