Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android FragmentActivity.onStart()处的NullPointerException_Android_Nullpointerexception_Android Activity_Actionbarsherlock - Fatal编程技术网

Android FragmentActivity.onStart()处的NullPointerException

Android FragmentActivity.onStart()处的NullPointerException,android,nullpointerexception,android-activity,actionbarsherlock,Android,Nullpointerexception,Android Activity,Actionbarsherlock,My Main活动扩展了一个CustomFragmentActivity,它扩展了SherlockFragmentActivity。。。在MainActivity中,我重写onStart方法,并在CustomFragmentActivity中设置一个静态布尔值。。。然后,我调用super.onStart,所以这个布尔值用于知道我是否应该向google analytics发送点击信息 当我在我的应用程序上使用Crashlytics时,我得到以下崩溃报告: java.lang.RuntimeExce

My Main活动扩展了一个
CustomFragmentActivity
,它扩展了
SherlockFragmentActivity
。。。在MainActivity中,我重写onStart方法,并在
CustomFragmentActivity
中设置一个静态布尔值。。。然后,我调用
super.onStart
,所以这个布尔值用于知道我是否应该向google analytics发送点击信息

当我在我的应用程序上使用Crashlytics时,我得到以下崩溃报告:

java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.maisapp/br.com.maisapp.MainActivity}: java.lang.NullPointerException
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1658)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1674)
   at android.app.ActivityThread.access$1500(ActivityThread.java:117)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:942)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:130)
   at android.app.ActivityThread.main(ActivityThread.java:3735)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:507)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:662)
   at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: java.lang.NullPointerException
   at android.support.v4.app.DialogFragment.onActivityCreated(DialogFragment.java:368)
   at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1508)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)
   at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884)
   at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1514)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)
   at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884)
   at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:566)
   at br.com.app.CustomFragmentActivity.onStart(CustomFragmentActivity.java:77)
   at br.com.app.MainActivity.onStart(MainActivity.java:192)
   at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
   at android.app.Activity.performStart(Activity.java:3791)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1631)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1674)
   at android.app.ActivityThread.access$1500(ActivityThread.java:117)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:942)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:130)
   at android.app.ActivityThread.main(ActivityThread.java:3735)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:507)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:662)
   at dalvik.system.NativeStart.main(NativeStart.java)
到目前为止,我还没有复制这次崩溃。这是MainActivity的onStart(第192行是super.onStart()调用)

在CustomFragmentActivity上,onStart如下所示:

@Override
public void onStart() {
    super.onStart();
    if (!isMain){
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        getGaTracker().send(MapBuilder.createAppView().build());
    }
}
我将isMain实例化为:
受保护的静态布尔值isMain=false


虽然debuggin不会生成任何异常,但无论onCreate(应用程序打开时)或onRestart(MainActivity已停止时)后调用onStart。。想知道我应该朝哪个方向去解决这个问题吗?

通过调试(观察)检查CustomFragmentActivity中的isMain,看看它是否正确null@A.S.当我静态实例化isMain时,它在运行时是否可能为null?此外,我不能将null赋值给isMain,因为boolean是一种基本数据类型……触发此操作的可能原因是您打开了一个对话框,并且屏幕旋转。这也发生在我身上,但我不确定解决方案。您可以在为DialogFragment创建的onCreate中将DialogFragment设置为setRetainInstance(true),但在整个方向更改过程中,对话框都不可见。
@Override
public void onStart() {
    super.onStart();
    if (!isMain){
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        getGaTracker().send(MapBuilder.createAppView().build());
    }
}