android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
這個是Android的一個BUG:
①當你按Home鍵的時候
②當你螢幕旋轉的時候
③當你從FragmentActivit跳到Activity中的時候
這三種情況都會引起該異常。
原因:
stackoverflow上的大神在Android原始碼中找到這樣一段程式碼,如下:
- if (f.mSavedViewState != null) {
- if (result == null) {
- result = new Bundle();
- }
- result.putSparseParcelableArray(
-
FragmentManagerImpl.VIEW_STATE_TAG, f.mSavedViewState);
- }
- if (!f.mUserVisibleHint) {
- // Only add this if it's not the default value
- result.putBoolean(FragmentManagerImpl.USER_VISIBLE_HINT_TAG, f.mUserVisibleHint);
- }
- if (f.mSavedViewState != null) {
- if (result == null) {
- result = new Bundle();
- }
-
result.putSparseParcelableArray(
- FragmentManagerImpl.VIEW_STATE_TAG, f.mSavedViewState);
- }
- if (!f.mUserVisibleHint) {
- if (result == null) {
- result = new Bundle();
- }
- // Only add this if it's not the default value
-
result.putBoolean(FragmentManagerImpl.USER_VISIBLE_HINT_TAG, f.mUserVisibleHint);
- }
解決方法:(全是到stackoverflow,谷歌程式碼找到的)
①重寫onSaveInstanceState(Bundle outState),在該函式中不再呼叫super.onSaveInstanceState().(這種方法可以避免異常,僅僅是權宜之計,並不合理,不推薦使用該種方法)。
②重寫onSaveInstanceState(Bundle outState),再呼叫super.onSaveInstanceState()之前,新增這樣一句程式碼:
- setUserVisibleHint(true);
③在上面的大神已經給出了原因。因此為了不讓result為null。重寫onSaveInstanceState(Bundle outState),在呼叫super.onSaveInstanceState()之前,給outState新增一些內容即可。比如:
- outState.putString("WORKAROUND_FOR_BUG_19917_KEY", "WORKAROUND_FOR_BUG_19917_VALUE");
參考:
相關推薦
android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
這個是Android的一個BUG: ①當你按Home鍵的時候 ②當你螢幕旋轉的時候 ③當你從FragmentActivit跳到Activity中的時候 這三種情況都會引起該異常。 原因: stackoverflow上的大神在Android原始碼中找到這樣一段
Found 2 versions of android-support-v4.jar in the dependency list,The type android.support.v4.app.Fr
1、 Found 2 versions of android-support-v4.jar in the dependency list, but not all the versions are identical (check is based on SHA-1 only at t
Error: Program type already present: android.support.v4.app.FragmentTransitionCompat21$1
參考連結 https://stackoverflow.com/questions/52845161/error-program-type-already-present-android-support-v4-app-fragmenttransitionco 主要原因: gra
android.support.v4.app.backstackrecord$Op
Program type already present:android.support.v4.app.backstackrecord$Op (程式型別已經存在:android.support.v4.app.backstackrecord$Op) 本來專案好好的。。過了幾天執行就起不來了。。
Android Studio 提示 android.support.v4.app 不存在
Import 匯入的專案同步後提示 提示 android.support.v4.app 不存在錯誤,同時依賴提示錯誤如下圖: 錯誤原因:缺少android.support.v4.app 依賴包 解決方法: 1、File->Project Structure->
required 'Android.support.v4.app.Fragment' found 'android.app.Fragment.'錯誤解決
跟著網上教程一步一步的做一個andriod studio例子 結果在 FragmentTransaction fTransaction = fManager.beginTransaction();報錯: required 'Android.support.v4.app.F
【Android】required 'Android.support.v4.app.Fragment' found 'android.app.Fragment.'錯誤解決
跟著網上教程一步一步的做一個andriod studio例子 結果在 FragmentTransaction fTransaction = fManager.beginTransaction();報錯: required 'Android.support.v4.app.Fra
Error:程式包android.support.v4.app不存在;Error:找不到類FragmentActivity
最近把在eclipse中開發的android專案匯入到AS中,出現了一點小錯誤。用的是以非gradle方式將 Eclipse 專案匯入Android Studio,具體方法參考http://blog.c
androidfragment 無法轉換為android.support.v4.app.Fragment
一般是看兩個地方,,,,一,看一下activity中的導報是否正確二,看一個fragment中的導包是否正確(一定要將錯誤的包刪除import android.app.fragment)正確的包是importandroid.support.v4.app.Fragment;
android 配置報錯:Program type already present: android.support.v4.app.BackStackRecord$Op
最近在整理公司的一些專案,總結做過的專案檔案,每次從svn下載下來的專案 都會報錯,其他小問題 就不一一說了,見招拆招,碰到兩個頭疼的問題,最後發現 解決辦法是一樣 在這裡,跟大家分享一下,如果,你知道,可以忽略,錯誤:Program type already present
Program type already present: android.support.v4.app.backstackrecord$Op
除錯過程中如果出現上述錯誤 最好的解決辦法是把build.gradle檔案中的下面部分:dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.sup
import android.support.v4.app.Fragment後呼叫add方法報錯
首先需要匯入android-support-v4.jar包,方法見下: 進入Android\sdk\extras\android\support\v4,將其中的android-support-v4.jar複製,拷貝到android專案的app/libs下,右鍵點選jar檔案
android.support.v4.app.Fragment原始碼解析
Fragment最基礎功能使用 FragmentManager fm=getFragmentManager(); FragmentTransaction transaction=fm.beginTransaction(); mFirstFragment
新增android-support-v4 錯誤 java.lang.ClassNotFoundException: android.support.v4.view.ViewPager in loade
在使用ViewPager新增android-support-v4.jar後提示如下錯誤 11-15 21:01:21.725: E/AndroidRuntime(32431): Caused by: java.lang.ClassNotFoundException: a
android studio 中JAVA檔案提示android.support.v7.app.actionbaractivity is deprecated怎樣處理?
出這個提示的地方有寫解決辦法呀. android.support.v7.app.ActionBarActivity is deprecated; use AppCompatActivity instead 意思是 ActionBarActivity 在最
android 4.4報錯java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvi
在android studio3.0 android 4.4.4 api 19下執行一直報錯如下: java.lang.RuntimeException: Unable to get provider android.support.v4.content.
java.lang.NoClassDefFoundError: android.support.v4.view.KeyEventCompat異常處理
異常資訊: java.lang.NoClassDefFoundError: android.support.v4.view.KeyEventCompat at android.support.v7.app.AppCompatActivity.dispatchKey
[已解決]: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4
今天開發的時候,發現明明有這個id,而且也通過findviewbyid獲取了,但是為什麼最後得到viewpager 是空呢? Caused by: java.lang.NullPointerException: Attempt to invoke virtual metho
兔子--Android Support v4包丟失的解決的方法
external extern add ras build -a post -- ont 在開發中,Android Support v4包丟失的解決的方法: Project->properties->Java Build Path->Librari
Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setHomeButtonEnabled(boolean)' on a null object reference
tac perf cti pla invoke one spa n) null 【Android】getActionBar()為null的解決方法總結 setContentView(R.layout.activity_main);android.support.v7.app