title: SharedPreferences Null pointer exception
body: <p>I am trying to save an integer that will store how many times a user has tapped on an ImageView using the SharedPreferences interface. However, when I run the app it gives me null pointer exception on the line where I am declaring the sharedPreferences like this:</p>
  
  <pre><code>SharedPreferences mSharedPreferences = this.getPreferences(Context.MODE_PRIVATE);
  </code></pre>
  
  <p>This is my first time of using this interface and is is a little confusing to me. I do not have any idea why this is happening.
  this is the log:</p>
  
  <pre><code>java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{koemdzhiev.com.eggyegg/koemdzhiev.com.eggyegg.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236)
          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
          at android.app.ActivityThread.access$800(ActivityThread.java:151)
          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
          at android.os.Handler.dispatchMessage(Handler.java:102)
          at android.os.Looper.loop(Looper.java:135)
          at android.app.ActivityThread.main(ActivityThread.java:5254)
          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:903)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
   Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
          at android.content.ContextWrapper.getPackageName(ContextWrapper.java:132)
          at android.app.Activity.getLocalClassName(Activity.java:4987)
          at android.app.Activity.getPreferences(Activity.java:5021)
          at koemdzhiev.com.eggyegg.MainActivity.&lt;init&gt;(MainActivity.java:20)
          at java.lang.reflect.Constructor.newInstance(Native Method)
          at java.lang.Class.newInstance(Class.java:1606)
          at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
          at   
  </code></pre>
  
  <p>This is my code in the class that extends from  the Application class:</p>
  
  <pre><code>public class EggyEggApplication extends Application {
  
  @Override
  public void onCreate() {
      SharedPreferences mSharedPreferences = this.getSharedPreferences(getString(R.string.koemdzhiev_eggyegg_PREFERENCE_FILE_KEY), Context.MODE_PRIVATE);
      SharedPreferences.Editor mEditor = mSharedPreferences.edit();
      if(mSharedPreferences.contains(getString(R.string.koemdzhiev_eggyegg_PREFERENCE_FILE_KEY))== false) {
          mEditor.putInt(getString(R.string.koemdzhiev_eggyegg_PREFERENCE_FILE_KEY), 0).apply();
      }
  }
  </code></pre>
  
  <p>This is my code in main activity:</p>
  
  <pre><code>public class MainActivity extends AppCompatActivity {
  private static final String TAG = MainActivity.class.getSimpleName();
  private int defaultValue;
  private int i;
  ImageView tapImage;
  SharedPreferences mSharedPreferences = this.getPreferences(Context.MODE_PRIVATE);
  SharedPreferences.Editor mEditor = mSharedPreferences.edit();
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
  
      tapImage = (ImageView)findViewById(R.id.tapImage);
      tapImage.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              i++;
              mEditor.putInt(getString(R.string.koemdzhiev_eggyegg_PREFERENCE_FILE_KEY),i);
              mEditor.commit();
          }
      });
      defaultValue = getResources().getInteger(R.string.koemdzhiev_eggyegg_PREFERENCE_FILE_KEY);
      i = mSharedPreferences.getInt(getString(R.string.koemdzhiev_eggyegg_PREFERENCE_FILE_KEY),defaultValue);
  
  
  
      int defaultValue = getResources().getInteger(R.string.koemdzhiev_eggyegg_PREFERENCE_FILE_KEY);
      long lastTapNumber = mSharedPreferences.getInt(getString(R.string.koemdzhiev_eggyegg_PREFERENCE_FILE_KEY),defaultValue);
      i = (int) lastTapNumber;
  
  }
  private boolean isNetworkAvailable() {
      ConnectivityManager connectivityManager
              = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
      return activeNetworkInfo != null &amp;&amp; activeNetworkInfo.isConnected();
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.menu_main, menu);
      return true;
  }
  </code></pre>