title: Android crash - Unable to get provider
body: <p>Losing my mind with this. I keep getting this crash. A similar question was asked here before, but I am not making that same mistake. Here is my manifest:
      </p>
  
  <pre><code>&lt;uses-sdk
      android:minSdkVersion="11"
      android:targetSdkVersion="15" /&gt;
  
  &lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/&gt;
  &lt;uses-permission android:name="android.permission.WAKE_LOCK"/&gt;
  
  &lt;application
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" &gt;
      &lt;activity
          android:name=".ReminderListActivity"
          android:label="@string/title_activity_reminder_list" &gt;
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.MAIN" /&gt;
  
              &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
          &lt;/intent-filter&gt;
      &lt;/activity&gt;
      &lt;activity
          android:name=".ReminderEditActivity"
          android:label="@string/title_activity_reminder_edit" &gt;
      &lt;/activity&gt;
      &lt;provider 
          android:name=".ReminderListProvider" 
          android:authorities="com.corsair.android.taskreminder.ReminderListProvider" &gt;            
      &lt;/provider&gt;
  &lt;/application&gt;
  </code></pre>
  
  <p></p>
  
  <p>As you can see, I have the authority fully qualified. I have a constant declared in my code for the authority(and use it when I create my Uri's:</p>
  
  <pre><code>public static final String AUTHORITY = "com.corsair.android.taskreminder.ReminderListProvider";
  
  // basic database info for creation
  public static final String DATABASE_NAME = "reminders.db";
  public static final String DATABASE_TABLE_NAME = "reminders";
  public static final int DATABASE_VERSION = 1;
  
  private ReminderListProviderMetaData() {
  }
  
  // inner class describing the Reminders Table
  // by implementing BaseColumns, we automatically get the _ID column
  // which is necessary for showing the DB contents in a ListView
  public static final class RemindersTableMetaData implements BaseColumns {
      private RemindersTableMetaData() {
      }
  
      public static final String TABLE_NAME = "reminders";
  
      // uri and MIME type definitions
      // info for database access
      // the content URI is the authority prefixed with "content://"
      public static final String BASE_PATH = "reminders";
      public static final Uri CONTENT_URI = Uri.parse("content://"
              + AUTHORITY + "/" + BASE_PATH);
  </code></pre>
  
  <p>Here is my logcat:</p>
  
  <pre><code>    08-01 18:11:10.111: I/dalvikvm(1150): threadid=3: reacting to signal 3
      08-01 18:11:10.141: I/dalvikvm(1150): Wrote stack traces to '/data/anr/traces.txt'
      08-01 18:11:10.481: I/dalvikvm(1150): threadid=3: reacting to signal 3
      08-01 18:11:10.694: I/dalvikvm(1150): Wrote stack traces to '/data/anr/traces.txt'
      08-01 18:11:11.951: I/Process(1150): Sending signal. PID: 1150 SIG: 9
      08-01 18:12:50.231: I/dalvikvm(1196): threadid=3: reacting to signal 3
      08-01 18:12:50.661: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'
      08-01 18:12:50.671: I/dalvikvm(1196): threadid=3: reacting to signal 3
      08-01 18:12:50.801: I/ActivityThread(1196): Pub                                 com.corsair.android.taskreminder.ReminderListProvider: com.corsair.android.taskreminder.ReminderListProvider
      08-01 18:12:50.833: D/ReminderProvider(1196): main oncreate called
      08-01 18:12:50.851: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'
      08-01 18:12:50.871: D/ReminderProvider(1196): inner oncreate called
      08-01 18:12:50.893: D/AndroidRuntime(1196): Shutting down VM
      08-01 18:12:50.893: W/dalvikvm(1196): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
      08-01 18:12:50.911: E/AndroidRuntime(1196): FATAL EXCEPTION: main
      08-01 18:12:50.911: E/AndroidRuntime(1196): java.lang.RuntimeException: Unable to get provider com.corsair.android.taskreminder.ReminderListProvider: java.lang.NullPointerException
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.app.ActivityThread.installProvider(ActivityThread.java:4240)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.app.ActivityThread.installContentProviders(ActivityThread.java:3992)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3946)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.app.ActivityThread.access$1300(ActivityThread.java:123)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.os.Handler.dispatchMessage(Handler.java:99)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.os.Looper.loop(Looper.java:137)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.app.ActivityThread.main(ActivityThread.java:4424)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at java.lang.reflect.Method.invokeNative(Native Method)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at java.lang.reflect.Method.invoke(Method.java:511)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at dalvik.system.NativeStart.main(Native Method)
      08-01 18:12:50.911: E/AndroidRuntime(1196): Caused by: java.lang.NullPointerException
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at com.corsair.android.taskreminder.ReminderListProvider$DatabaseHelper.onCreate(ReminderListProvider.java:75)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at com.corsair.android.taskreminder.ReminderListProvider.onCreate(ReminderListProvider.java:102)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.content.ContentProvider.attachInfo(ContentProvider.java:944)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     at android.app.ActivityThread.installProvider(ActivityThread.java:4237)
      08-01 18:12:50.911: E/AndroidRuntime(1196):     ... 12 more
      08-01 18:12:51.241: I/dalvikvm(1196): threadid=3: reacting to signal 3
      08-01 18:12:51.291: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'
      08-01 18:12:51.541: I/dalvikvm(1196): threadid=3: reacting to signal 3
      08-01 18:12:51.601: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'
      08-01 18:12:58.262: I/Process(1196): Sending signal. PID: 1196 SIG: 9
  </code></pre>
  
  <p>Here is line 75(referred to in the logcat):</p>
  
  <pre><code>@Override
  public void onCreate(SQLiteDatabase db) {
  Log.d(TAG, "inner oncreate called");
  db.execSQL(RemindersTableMetaData.DATABASE_CREATE_SCHEMA);
  }
  </code></pre>
  
  <p>Here is the DATABASE_CREATE_SCHEMA:</p>
  
  <pre><code>public static final String DATABASE_CREATE_SCHEMA = "create table "
  + DATABASE_TABLE_NAME + " (" + RemindersTableMetaData._ID
  + " integer primary key autoincrement, " + REMINDER_TITLE
  + " text not null, " + REMINDER_BODY + " text not null, "
  + REMINDER_DATE_TIME + " text not null" + ");";
  </code></pre>
  
  <p>Here is my ContentProvider's onCreate():</p>
  
  <pre><code>// database helper member variable
  private DatabaseHelper mOpenHelper;
  private SQLiteDatabase db;
  // component creation callback
  @Override
  public boolean onCreate() {
  Log.d(TAG, "main oncreate called");
  mOpenHelper = new DatabaseHelper(getContext());
  mOpenHelper.onCreate(db);
  return true;
  }
  </code></pre>
  
  <p>Here is my DataBaseHelper's constructor:</p>
  
  <pre><code>// this class helps open, create, and upgrade the database
  private static class DatabaseHelper extends SQLiteOpenHelper {
  public DatabaseHelper(Context context) {
  super(context, ReminderListProviderMetaData.DATABASE_NAME, null,
  ReminderListProviderMetaData.DATABASE_VERSION);
  }
  </code></pre>
  
  <p>Really at my wit's end here. Thanks for any help.</p>