2016-09-27 44 views
0

我得到crashlytics面板上的這個錯誤:MVP - 莫斯 - Api10:的NoSuchMethodError android.support.v4.app.FragmentActivity.isChangingConfigurations

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) 

我重寫艙單庫與api level 10使用它,我已經測試它在Android 2.3.3上,它工作正常!但現在我看到這個崩潰crashlytics。嗨,我可以解決這個我的版本?崩潰與api 10有關?因爲該方法是爲support v4庫,所以我不明白爲什麼會發生這種情況。

回答

1

isChangingConfigurations()已被引入用API 11的方法: 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()在您的活動,要麼調用 super.isChangingConfigurations()如果API> = 11或實現自己的事情,如果(API < 11)。你可能想看看活動源代碼,但我不知道這可能會被移植。 https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/Activity.java#L5152

你可以嘗試,如果API < 11只返回false。這意味着View的狀態(和Presenter)將無法在屏幕方向更改中生存。免責聲明:這也可能會導致我現在還不知道的其他一些不需要的副作用,並可能會與未來版本的Mosby或支持庫發生衝突。