NullPointerException异常android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState [英] NullPointerException android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState
本文介绍了NullPointerException异常android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在使用共享意向的应用程序崩溃,出现以下错误
十二月1号至25日:16:09.270:E / AndroidRuntime(28699):致命异常:主要
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):显示java.lang.NullPointerException
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在com.actionbarsherlock.app.SherlockFragmentActivity.onSaveInstanceState(SherlockFragmentActivity.java:127)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.app.Activity.performSaveInstanceState(Activity.java:1113)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1188)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.app.ActivityThread.performStopActivityInner(ActivityThread.java:2805)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.app.ActivityThread.handleStopActivity(ActivityThread.java:2863)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.app.ActivityThread.access $ 900(ActivityThread.java:127)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1173)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.os.Handler.dispatchMessage(Handler.java:99)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.os.Looper.loop(Looper.java:137)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在android.app.ActivityThread.main(ActivityThread.java:4507)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在java.lang.reflect.Method.invokeNative(本机方法)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在java.lang.reflect.Method.invoke(Method.java:511)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:790)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
12月一号日至25号:16:09.270:E / AndroidRuntime(28699):在dalvik.system.NativeStart.main(本机方法)
PlacesActivity.java
@覆盖
公共布尔onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.action_share:
//谷歌Analytics跟踪
GATracker.sendEvent(ui_action,button_ preSS,共享,
click_value);
分享它();
打破;
默认:
打破;
}
返回true;
}
私人无效shareIt(){
意图sharingIntent =新的意图(android.content.Intent.ACTION_SEND);
sharingIntent.setType(text / plain的);
字符串shareText =名称+\ N+距离+公里 - +日+天
+\ N+待办事项+\ñ\ N
+退房游牧为Android http://goo.gl/i1mH9;
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
看看这个!);
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT,shareText);
startActivity(Intent.createChooser(sharingIntent,通过分享));
}
解决方案
各种各样的错误(也可能不是)。但尝试folloing:对于所有的碎片,覆盖的onSaveInstanceState如下
@覆盖
公共无效的onSaveInstanceState(包outState)
{
//先保存我的状态,所以束不会是空的。
outState.putString(WORKAROUND_FOR_BUG_19917_KEY,WORKAROUND_FOR_BUG_19917_VALUE);
super.onSaveInstanceState(outState);
}
这链接有更深入的了解。
On using Share Intent the App Crashes with the following Error
01-25 12:16:09.270: E/AndroidRuntime(28699): FATAL EXCEPTION: main
01-25 12:16:09.270: E/AndroidRuntime(28699): java.lang.NullPointerException
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
01-25 12:16:09.270: E/AndroidRuntime(28699): at com.actionbarsherlock.app.SherlockFragmentActivity.onSaveInstanceState(SherlockFragmentActivity.java:127)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.app.Activity.performSaveInstanceState(Activity.java:1113)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1188)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:2805)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.app.ActivityThread.handleStopActivity(ActivityThread.java:2863)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.app.ActivityThread.access$900(ActivityThread.java:127)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1173)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.os.Handler.dispatchMessage(Handler.java:99)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.os.Looper.loop(Looper.java:137)
01-25 12:16:09.270: E/AndroidRuntime(28699): at android.app.ActivityThread.main(ActivityThread.java:4507)
01-25 12:16:09.270: E/AndroidRuntime(28699): at java.lang.reflect.Method.invokeNative(Native Method)
01-25 12:16:09.270: E/AndroidRuntime(28699): at java.lang.reflect.Method.invoke(Method.java:511)
01-25 12:16:09.270: E/AndroidRuntime(28699): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
01-25 12:16:09.270: E/AndroidRuntime(28699): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
01-25 12:16:09.270: E/AndroidRuntime(28699): at dalvik.system.NativeStart.main(Native Method)
PlacesActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_share:
// Google Analytics Tracking
GATracker.sendEvent("ui_action", "button_press", "share",
click_value);
shareIt();
break;
default:
break;
}
return true;
}
private void shareIt() {
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
String shareText = name + "\n" + distance + " kms - " + days + " days"
+ "\n" + todo + "\n\n"
+ "Check out Nomad for Android http://goo.gl/i1mH9";
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
"Check out this!!");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareText);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
解决方案
its a bug of sorts (or maybe not). but try the folloing: For all fragments, override the onSaveInstanceState as below
@Override
public void onSaveInstanceState(Bundle outState)
{
//first saving my state, so the bundle wont be empty.
outState.putString("WORKAROUND_FOR_BUG_19917_KEY", "WORKAROUND_FOR_BUG_19917_VALUE");
super.onSaveInstanceState(outState);
}
this link has some more insight
这篇关于NullPointerException异常android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文