title: Android Jelly Bean issue with SQLite connection
body: <p>I have a piece of code which access an SQLite database, which works perfectly up until Jelly Bean. In which case not all data is taken from the database ( at least the first column is omitted somehow) 
  And also gives the error "unknown error (code 14) could not open database", although some data IS being read from it. 
  Do ask for more details if you don't get the situation</p>
  
  <p>Thank you! </p>
  
  <pre><code>private class DataBaseHelper extends SQLiteOpenHelper {
  
      private SQLiteDatabase myDataBase;
  
      public DataBaseHelper() {
  
          super(myContext, DB_NAME, null, 1);
  
          DB_PATH = "/data/data/" + myContext.getPackageName()
                  + "/databases/";
      }
  
      /**
       * Creates a empty database on the system and rewrites it with your own
       * database.
       * */
      public void createDataBase() throws IOException {
          boolean dbExist = checkDataBase();
          if (dbExist) {
  
              // do nothing - database already exist
          } else {
              // By calling this method and empty database will be created
              // into the default system path
              // of your application so we are gonna be able to overwrite that
              // database with our database.
              this.getReadableDatabase();
              try {
                  copyDataBase();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
  
      }
  
  
      private boolean checkDataBase() {
  
          SQLiteDatabase checkDB = null;
  
          try {
              String myPath = myContext.getDatabasePath(DB_NAME).getAbsolutePath();
              checkDB = SQLiteDatabase.openDatabase(myPath, null,
                      SQLiteDatabase.NO_LOCALIZED_COLLATORS);
  
          } catch (SQLiteException e) {
              // database does't exist yet.
          }
  
          if (checkDB != null) {
              checkDB.close();
          }
  
          return checkDB != null ? true : false;
      }
  
      /**
       * Copies your database from your local assets-folder to the just
       * created empty database in the system folder, from where it can be
       * accessed and handled. This is done by transfering bytestream.
       * */
      private void copyDataBase() throws IOException {
  
          // Open your local db as the input stream
          InputStream myInput = myContext.getAssets().open(DB_NAME);
  
          // Path to the just created empty db
          String outFileName = DB_PATH + DB_NAME;
  
          // Open the empty db as the output stream
          OutputStream myOutput = new FileOutputStream(outFileName);
  
          // transfer bytes from the inputfile to the outputfile
          byte[] buffer = new byte[1024];
          int length;
          while ((length = myInput.read(buffer)) &gt; 0) {
              myOutput.write(buffer, 0, length);
          }
  
          // Close the streams
          myOutput.flush();
          myOutput.close();
          myInput.close();
  
      }
  
      public void openDataBase() throws SQLException {
  
          // Open the database
          String myPath =DB_PATH + DB_NAME;
          myDataBase = SQLiteDatabase.openDatabase(myPath, null,
                  SQLiteDatabase.NO_LOCALIZED_COLLATORS);
  
      }
  </code></pre>
  
  <p>Here is the LogCat error</p>
  
  <pre><code>     01-11 14:36:32.153: E/SQLiteLog(15050): (14) cannot open file at line 30174 of [00bb9c9ce4]
       01-11 14:36:32.153: E/SQLiteLog(15050): (14) os_unix.c:30174: (2)        open(/data/data/eu.isdc.cabinCrew/databases/database.sqlite) - 
       01-11 14:36:32.183: E/SQLiteDatabase(15050): Failed to open database '/data/data/eu.isdc.cabinCrew/databases/database.sqlite'.
       01-11 14:36:32.183: E/SQLiteDatabase(15050): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not   open database
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at eu.isdc.cabinCrew.a.b.c(Unknown Source)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at eu.isdc.cabinCrew.a.b.a(Unknown Source)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at eu.isdc.cabinCrew.a.a.&lt;init&gt;(Unknown Source)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at eu.isdc.cabinCrew.a.a.a(Unknown       Source)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at eu.isdc.cabinCrew.activities.TrainingActivity.onCreate(Unknown Source)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.app.Activity.performCreate(Activity.java:5008)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.app.ActivityThread.access$600(ActivityThread.java:130)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.os.Handler.dispatchMessage(Handler.java:99)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.os.Looper.loop(Looper.java:137)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at android.app.ActivityThread.main(ActivityThread.java:4745)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at java.lang.reflect.Method.invokeNative(Native Method)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at java.lang.reflect.Method.invoke(Method.java:511)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
       01-11 14:36:32.183: E/SQLiteDatabase(15050):   at dalvik.system.NativeStart.main(Native Method)
       01-11 14:36:32.503: E/SQLiteLog(15050): (1) no such table: airdata
  </code></pre>
  
  <p>It does open the database, but doesn't find that particular table, even if it's there. And this happens only with Jelly Bean. Did anything change with database interaction with this version? </p>