title: Application Class with Database Trouble in Android
body: <p>I'm having trouble accessing a SQLite DB in my Android application. I have created an application class that contains an instance of a SQLiteOpenHelper however whenever I try to open the DB in another activity, it crashes.</p>
  
  <p>Here is my application class:</p>
  
  <pre><code>public class GlobalVariables extends Application {
  
      private LocationsData locations;
  
      public void onCreate(Context context) {
              locations = new LocationsData(context);
      }
  
      public LocationsData getLocations() {
             return locations;
      }
  }
  </code></pre>
  
  <p>Here is my SQLiteOpenHelper class:</p>
  
  <pre><code>public class LocationsData extends SQLiteOpenHelper{
  private static final String DATABASE_NAME = "locations.db";
  private static final int DATABASE_VERSION = 1;
  
  public static final String TABLE_LOCATIONS = "locations";
  public static final String COLUMN_ID = "_id";
  public static final String COLUMN_NICKNAME = "nickname";
  
  private static final String DATABASE_CREATE = "create table "
          + TABLE_LOCATIONS + "( " + COLUMN_ID
          + " integer primary key autoincrement, " + COLUMN_NICKNAME
          + " text not null);";
  
  public LocationsData(Context context) {
      super(context, DATABASE_NAME, null, DATABASE_VERSION);
  }
  
  @Override
  public void onCreate(SQLiteDatabase db) {
      db.execSQL(DATABASE_CREATE);
  
  }
  
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      db.execSQL("DROP TABLE IF EXISTS " + TABLE_LOCATIONS);
      onCreate(db);
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>And when I try to access the db's in another activity like this i get an error:</p>
  
  <pre><code>    @Override
      public void onResume()
      {
           locationsData=((GlobalVariables)getApplication()).getLocations();
           SQLiteDatabase db = locationsData.getReadableDatabase();
           super.onResume();
      }
  </code></pre>
  
  <p>Any help? Thank you!</p>
  
  <pre><code>Log Cat:
  05-10 02:00:50.146: D/AndroidRuntime(532): Shutting down VM
  05-10 02:00:50.146: W/dalvikvm(532): threadid=1: thread exiting with uncaught exception (group=0x40015560)
  05-10 02:00:50.179: E/AndroidRuntime(532): FATAL EXCEPTION: main
  05-10 02:00:50.179: E/AndroidRuntime(532): java.lang.RuntimeException: Unable to resume activity {com.John.seniorDesign/com.John.seniorDesign.LocationsTabActivity}: java.lang.NullPointerException
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2120)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:138)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:654)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.widget.TabHost.setCurrentTab(TabHost.java:326)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:132)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:456)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.view.View.performClick(View.java:2485)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.view.View$PerformClick.run(View.java:9080)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.os.Handler.handleCallback(Handler.java:587)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.os.Handler.dispatchMessage(Handler.java:92)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.os.Looper.loop(Looper.java:130)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.app.ActivityThread.main(ActivityThread.java:3683)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at java.lang.reflect.Method.invokeNative(Native Method)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at java.lang.reflect.Method.invoke(Method.java:507)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at dalvik.system.NativeStart.main(Native Method)
  05-10 02:00:50.179: E/AndroidRuntime(532): Caused by: java.lang.NullPointerException
  05-10 02:00:50.179: E/AndroidRuntime(532):  at com.John.seniorDesign.LocationsTabActivity.onResume(LocationsTabActivity.java:75)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.app.Activity.performResume(Activity.java:3832)
  05-10 02:00:50.179: E/AndroidRuntime(532):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2110)
  05-10 02:00:50.179: E/AndroidRuntime(532):  ... 17 more
  </code></pre>