Java 共享首选项重新调整为null

Java 共享首选项重新调整为null,java,android,sharedpreferences,Java,Android,Sharedpreferences,我正在尝试简单地检查以加载正确的开始活动,我会: public class MainActivity extends AppCompatActivity { public static final String TAG = "MainActivity"; public SharedPreferences sharedPreferences = MyApplication.getAppContext().getSharedPreferences("

我正在尝试简单地检查以加载正确的开始活动,我会:

public class MainActivity extends AppCompatActivity {

    public static final String TAG = "MainActivity";

   public SharedPreferences sharedPreferences =  MyApplication.getAppContext().getSharedPreferences("sharedPrefs", MODE_PRIVATE);
    public SharedPreferences.Editor editor = sharedPreferences.edit();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        boolean onBoardingComplete = sharedPreferences.getBoolean("firstRun", true);

        if(onBoardingComplete){
            Intent navIntent = new Intent(this, NavigationStartActivity.class);
            startActivity(navIntent);
        }else{
            Intent onBoardIntent = new Intent(this, OnBoardingActivity.class);
            startActivity(onBoardIntent);
        }


    }
我在第5行初始化SharedReferences时得到一个空指针异常。我的sharedPrefs文件存在于存储数据/data/com.myap/shared\u prefs/sharedPrefs.xml中


我不知道这为什么会返回null。

将它移到onCreate内部,因为外部上下文为null

public class MainActivity extends AppCompatActivity {

    public static final String TAG = "MainActivity";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        SharedPreferences sharedPreferences = getSharedPreferences("sharedPrefs", MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();


        boolean onBoardingComplete = sharedPreferences.getBoolean("firstRun", true);

        if (onBoardingComplete) {
            Intent navIntent = new Intent(this, NavigationStartActivity.class);
            startActivity(navIntent);
        } else {
            Intent onBoardIntent = new Intent(this, OnBoardingActivity.class);
            startActivity(onBoardIntent);
        }


    }
}

并将
SharedReferences.edit()
移动到else分支,前提是它仅将
“firstRun”
设置为true。仅从
SharedReferences
检索值时,不需要编辑器。