Android FragmentManager BackStackRecord.çalıştırmak atma NullPointerException
EDİT2: Kendi soruma cevap aşağıda
Ben bazen Parçaları ile çalışırken, aşağıdaki özel durum alıyorum:
11-15 09:04:21.023: E/AndroidRuntime(4057): FATAL EXCEPTION: main
11-15 09:04:21.023: E/AndroidRuntime(4057): java.lang.NullPointerException
11-15 09:04:21.023: E/AndroidRuntime(4057): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:591)
11-15 09:04:21.023: E/AndroidRuntime(4057): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
11-15 09:04:21.023: E/AndroidRuntime(4057): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:420)
11-15 09:04:21.023: E/AndroidRuntime(4057): at android.os.Handler.handleCallback(Handler.java:615)
11-15 09:04:21.023: E/AndroidRuntime(4057): at android.os.Handler.dispatchMessage(Handler.java:92)
11-15 09:04:21.023: E/AndroidRuntime(4057): at android.os.Looper.loop(Looper.java:137)
11-15 09:04:21.023: E/AndroidRuntime(4057): at android.app.ActivityThread.main(ActivityThread.java:4745)
11-15 09:04:21.023: E/AndroidRuntime(4057): at java.lang.reflect.Method.invokeNative(Native Method)
11-15 09:04:21.023: E/AndroidRuntime(4057): at java.lang.reflect.Method.invoke(Method.java:511)
11-15 09:04:21.023: E/AndroidRuntime(4057): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-15 09:04:21.023: E/AndroidRuntime(4057): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-15 09:04:21.023: E/AndroidRuntime(4057): at dalvik.system.NativeStart.main(Native Method)
Bunun neden olduğunu anlamaya görünmüyor olabilir mi? Parçaları çıkarırken parçaları backstack hemen temizledim olmamakla ilgisi var bence.
EDÄ°T1: BackStackRecord
run()
çağrıldığında durum oluşur thru execPendingTransactions()
. Yöneticisinden bir parçası kaldırmak için çalıştığında.
case OP_REMOVE: {
Fragment f = op.fragment;
f.mNextAnim = op.exitAnim; <----
mManager.removeFragment(f, mTransition, mTransitionStyle);
}
break;
CEVAP
Kendi soruma cevap:
Bu durum, (sonunda) FragmentTransaction aradığınızda atılır.Kaldır(null); FragmentTransaction.() işlemek;
EDİT: Ve ayrıca,. çağırırken ve yorumun çıkış noktası Çember shinyuX; gibi İki kez(null) veya .(null) Ekle(null) Ekle .(null) yöntemleri, ve muhtemelen de ayır .gizle(null)
Çağrıldıktan sonra () buna göre, bu işlem FragmentManager. sıraya olacak Ameliyat sonrası işlendiğinde, sonuç olarak, açıkça FragmentManager arayın.() executePendingTransactions FragmentManager sıra iş parçacığı çağırdığında, ya da, bir NullPointerException fırlatır.
Benim durumumda, küresel bir nesne parçası Birleşik Devletleri tamir ediyordum. Yoksa parça gösteren olup olmadığını kontrol ettim ve görünen parçalar kaldırıldı. Ama yeni bir FragmentActivity başladım çünkü, bu devletler hala görünmez iken gerçek olarak kabul edilmiştir. Bu bir tasarım hatası.
Tasarım hatayı düzeltmeden sonra diğer çözüm basitti: FragmentManager olmadığını kontrol edin.() findFragmentByTag parça çıkarmadan önce boş döndü.
Bir şekilde Android üzerinde Python ça...
Nasıl yüklü android uygulamaların bir ...
Nasıl Android Çalıştırılabilir bir iş ...
Benim android uygulaması sadece dikey ...
Neden bu bir NullPointerException atma...