एप्लिकेशन मैं एक क्रैश होने मुद्दा है पर काम कर रहा हूँ के उपयोगकर्ताओं। यह कंसोल से मिलता है जो स्टैक ट्रेस है।एंड्रॉयड टुकड़ा अशक्त वस्तु mNextAnim आंतरिक Crach
java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim' on a null object reference
at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:924)
at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1605)
at android.support.v4.app.FragmentManagerImpl$4.run(FragmentManager.java:532)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
दुर्घटना केवल उन 5.x या हमारे केवल एक कम से कम उन है कि सूचना मिल गया के साथ है कि आकाशगंगा Note3 या Galaxy S4 फोन के साथ होता है, लेकिन यह एक बहुत होता है। ऐसा लगता है कि टुकड़ों के बीच संक्रमण या कभी-कभी कैमरे से वापस आने पर। यहां मेरी संक्रमण विधियां हैं।
public void popBackStackToOr(String popBackFragmentName, String secondPopBackFragment)
{
int backStackId = 0;
int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
List<Fragment> fragments = getSupportFragmentManager().getFragments();
for (int k = (backStackCount - 1); k > 0; k--)
{
String aFragmentClass = fragments.get(k).getClass().toString();
String[] splitList = aFragmentClass.split("\\.");
aFragmentClass = splitList[splitList.length - 1];
boolean firstOptionTrue = aFragmentClass.equalsIgnoreCase(popBackFragmentName);
boolean secondOptionTrue = aFragmentClass.equalsIgnoreCase(secondPopBackFragment);
if ((firstOptionTrue) || (secondOptionTrue))
{
backStackId = getSupportFragmentManager().getBackStackEntryAt(k).getId();
break;
}
}
getSupportFragmentManager().popBackStack(backStackId, android.support.v4.app.FragmentManager.POP_BACK_STACK_INCLUSIVE); //Immediate
}
public void popBackStackForReview(String popBackFragmentName)
{
int backStackId = 0;
int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
List<Fragment> fragments = getSupportFragmentManager().getFragments();
for (int k = (backStackCount - 1); k > 0; k--)
{
String aFragmentClass = fragments.get(k).getClass().toString();
String[] splitList = aFragmentClass.split("\\.");
aFragmentClass = splitList[splitList.length - 1];
if (aFragmentClass.equalsIgnoreCase(popBackFragmentName))
{
backStackId = getSupportFragmentManager().getBackStackEntryAt(k).getId();
break;
}
}
getSupportFragmentManager().popBackStack(backStackId, android.support.v4.app.FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
public void transitionToLoginPage()
{
Fragment newFragment = new LoginPage();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, newFragment);
//transaction.addToBackStack(null);
transaction.commitAllowingStateLoss();
}
public void transitionToNewScreen(Fragment newFragment, Bundle bundle)
{
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (currentFragment != null)
{
transaction.remove(currentFragment);
}
currentFragment = newFragment;
if (bundle != null)
{
newFragment.setArguments(bundle);
}
transaction.replace(R.id.frame_container, newFragment);
transaction.addToBackStack("dummy");
transaction.commitAllowingStateLoss();
}
public void transitionToNewScreenAndEmptyStack(Fragment newFragment)
{
getSupportFragmentManager().popBackStack(0, android.support.v4.app.FragmentManager.POP_BACK_STACK_INCLUSIVE);
currentFragment = newFragment;
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, newFragment);
transaction.addToBackStack(null);
transaction.commitAllowingStateLoss();
}
ये एकमात्र तरीका हैं जो ऐप में संक्रमण करते हैं। तो मुझे लगता है कि यह इनमें से किसी एक से आ रहा है। लेकिन स्टैक ट्रेस मैंने लिखा किसी भी कोड पर वापस नहीं जाता है, इसलिए मुझे यकीन नहीं है। मुझे इसी तरह की समस्याएं मिली हैं कि यह एक एंड्रॉइड 5.x मुद्दा है और कोई फिक्स नहीं था। तो इस समस्या को दूर करने के लिए किसी भी मदद होगी महान
आप की जगह commitAllowingStateLoss() द्वारा (प्रतिबद्ध) की कोशिश की है? – user2641570
नहीं मैंने कोशिश नहीं की है कि मैं इसे बदलने की कोशिश कर सकता हूं, देखें कि क्या होता है। – sethprogrammer
यह तय करता है लेकिन पुराने उपकरणों के दुर्घटनाओं और अन्य समस्याओं के लिए समस्याएं उत्पन्न हुईं – sethprogrammer