title: SQLiteOpenHelper.getWritableDatabase() throws NullPointerException ORMLite
body: <p>This is sets of methods which I use in DatabaseHandler class which extends from OrmLiteSqliteOpenHelper:    </p>
  
  <pre><code>@Override
          public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) 
          {
           try
           {  
  
              TableUtils.createTable(connectionSource, Category.class);
              TableUtils.createTable(connectionSource, Level.class);
              DataParsing a = new DataParsing();
              a.wrapCategories();
              Log.i(DatabaseHandler.class.getName(), "created new entries in onCreate: " );
           }
           catch (SQLException e){
               Log.e(TAG, "error creating DB " + DATABASE_NAME);
               throw new RuntimeException(e);
           } catch (JSONException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } 
      }
      // Upgrading database
        @Override
         public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVer, int newVer)
        {
             try
              {          
  
                 TableUtils.dropTable(connectionSource, Category.class, true);
                 TableUtils.dropTable(connectionSource, Level.class, true);
                 onCreate(db, connectionSource);
              }
             catch (SQLException e){
                 Log.e(TAG,"error upgrading db "+DATABASE_NAME+"from ver "+oldVer);
                 throw new RuntimeException(e);
             }
  
         }
  
  
        public Dao&lt;Category, Integer&gt; getCategoryDao() throws SQLException 
          {
              if (simpleCategoryDao == null) {
                  simpleCategoryDao = getDao(Category.class);
              }
              return simpleCategoryDao;
          }
  
        public Dao&lt;Level, Integer&gt; getLevelDao() throws SQLException 
          {
              if (simpleLevelDao == null) {
                  simpleLevelDao = getDao(Level.class);
              }
              return simpleLevelDao;
          }
  </code></pre>
  
  <p>When I run my app I get such messages</p>
  
  <pre><code>08-03 16:44:08.619: V/droidDatabaseConnection(12196): AndroidDatabaseConnection@405182b0: compiled statement got AndroidCompiledStatement@40578b10: CREATE TABLE `categories` (`title` VARCHAR , `id` INTEGER , PRIMARY KEY (`id`) ) 
  08-03 16:44:08.619: V/ndroidCompiledStatement(12196): compiled statement runExecute changed 1 rows: CREATE TABLE `categories` (`title` VARCHAR , `id` INTEGER , PRIMARY KEY (`id`) ) 
  
  08-03 16:44:08.629: V/droidDatabaseConnection(12196): AndroidDatabaseConnection@405182b0: compiled statement got AndroidCompiledStatement@405f0f50: CREATE TABLE `levels` (`title` VARCHAR , `id` INTEGER , PRIMARY KEY (`id`) ) 
  08-03 16:44:08.629: V/ndroidCompiledStatement(12196): compiled statement runExecute changed 1 rows: CREATE TABLE `levels` (`title` VARCHAR , `id` INTEGER , PRIMARY KEY (`id`) ) 
  </code></pre>
  
  <p>As I understand data base was created successfully. Then I want to put a List of objects there with the method:</p>
  
  <pre><code>public void saveContacts(List&lt;Category&gt; contacts) throws SQLException
      {
  
          OrmLiteSqliteOpenHelper dbHelper= DatabaseHandler.getInstance(_context);
          String res = Boolean.toString(dbHelper.isOpen());
          Log.i(" 123 ",res);
          dbHelper.getWritableDatabase();
          Dao&lt;Category, Integer&gt; daoContact=dbHelper.getDao(Category.class);
  
          QueryBuilder&lt;Category, Integer&gt; queryBuilder = daoContact.queryBuilder();
          daoContact.queryRaw("insert into categories values (hello, 1)");
          Log.i("dao",queryBuilder.selectColumns("title").prepare().toString());
  
          for (Category contact : contacts) {
              Log.i("dao",contact.toString());
              HelperFactory.GetHelper().getCategoryDao().createIfNotExists(contact);
          }
        }
  </code></pre>
  
  <p>And on row dbHelper.getWritableDatabase(); I get </p>
  
  <pre><code>08-03 16:44:29.199: E/AndroidRuntime(12196): FATAL EXCEPTION: main
  08-03 16:44:29.199: E/AndroidRuntime(12196): java.lang.NullPointerException
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at com.assignmentexpert.LoginActivity.saveContacts(LoginActivity.java:268)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at com.assignmentexpert.LoginActivity$4.onClick(LoginActivity.java:132)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at android.view.View.performClick(View.java:2485)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at android.view.View$PerformClick.run(View.java:9080)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at android.os.Handler.handleCallback(Handler.java:587)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at android.os.Handler.dispatchMessage(Handler.java:92)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at android.os.Looper.loop(Looper.java:123)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at android.app.ActivityThread.main(ActivityThread.java:3687)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at java.lang.reflect.Method.invokeNative(Native Method)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at java.lang.reflect.Method.invoke(Method.java:507)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
  08-03 16:44:29.199: E/AndroidRuntime(12196):    at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>Why does it happen? </p>