java.lang.RuntimeException:在使用SharedReferences期间,无法在片段中启动activity ComponentInfo

java.lang.RuntimeException:在使用SharedReferences期间,无法在片段中启动activity ComponentInfo,java,android,fragment,sharedpreferences,Java,Android,Fragment,Sharedpreferences,这种情况并不经常发生,但我在谷歌Play控制台上有两个关于这方面的报告。这是stacktrace: java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.nikeabooks.eastermessage/ru.nikeabooks.eastermessage.BookActivity}: java.lang.NullPointerException at android.app.ActivityThread.p

这种情况并不经常发生,但我在谷歌Play控制台上有两个关于这方面的报告。这是stacktrace:

java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.nikeabooks.eastermessage/ru.nikeabooks.eastermessage.BookActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4822)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at ru.nikeabooks.eastermessage.BookPageFragment.onCreate(BookPageFragment.java:66)
at android.support.v4.app.Fragment.performCreate(Fragment.java:1455)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
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.dispatchCreate(FragmentManager.java:1872)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:215)
at ru.nikeabooks.eastermessage.BookActivity.onCreate(BookActivity.java:63)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
... 11 more
下面是一些代码:

public class BookPageFragment extends Fragment {

          SharedPreferences sPref;
//....some more code

      static BookPageFragment newInstance(int page) {
          BookPageFragment pageFragment = new BookPageFragment();
        Bundle arguments = new Bundle();
        arguments.putInt(ARGUMENT_PAGE_NUMBER, page);
        pageFragment.setArguments(arguments);
        return pageFragment;
      }

  @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        pageNumber = getArguments().getInt(ARGUMENT_PAGE_NUMBER);
        context=BookActivity.getContext();
        sPref=context.getSharedPreferences("ru.xxxxxx.xxxx.PREF", context.MODE_PRIVATE);

//and more

因此,sPref=context.getSharedReferencesru.xxxxxx.xxxx.PREF,context.MODE_PRIVATE;线路发生故障。。有时在大多数情况下,它运行良好

任何想法???

BookActivity.getContext;看起来可疑。试试这个

getActivity().getApplicationContext();

静态公共上下文getContext{return Context;}有时。在大多数情况下,它运行良好。这意味着,活动的上下文为空。可能是活动已完成,因此无法通过静态way@user2976267,执行类似ifcontext==null{…在其他地方获取上下文}的操作,我会尝试。但很难找到结果,因为它发生在某个安装了该应用程序的用户身上。我不能重复这个错误