title: Error When I try to open SQLite database pre-created in the assets folder
body: <p>I have a database in <em>SQLite</em> precreated and inserted in assets folder, unfortunately I cannot access the database.</p>
  
  <p>When I try to use a command to access the DB, for example</p>
  
  <pre><code> DataBaseHelper myDbHelper = new DataBaseHelper(this);
           myDbHelper = new DataBaseHelper(this);
  
           try {
  
              myDbHelper.openDataBase();
  
          }catch(SQLException sqle){
  
              throw sqle;
  
          }
  </code></pre>
  
  <p>I get this error:</p>
  
  <pre><code>E/AndroidRuntime(5390): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mysoftware.app/com.mysoftware.app.Home}: android.database.sqlite.SQLiteException: unable to open database file
  </code></pre>
  
  <p>My DataBaseHelper class is:</p>
  
  <pre><code>public class DataBaseHelper extends SQLiteOpenHelper{
  
      private static String DB_PATH = "/data/data/com.mysoftware.app/databases/";
  
      private static String DB_NAME = "DBTestate";
  
      private SQLiteDatabase myDataBase; 
  
      private final Context myContext;
  
  
      public DataBaseHelper(Context context) {
  
          super(context, DB_NAME, null, 1);
          this.myContext = context;
      }   
  
      public void createDataBase() throws IOException{
  
          boolean dbExist = checkDataBase();
          SQLiteDatabase db_Read = null;
  
          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();
              db_Read = this.getReadableDatabase(); 
              db_Read.close();
  
              try {
  
                  copyDataBase();
  
              } catch (IOException e) {
  
                  throw new Error("Error copying database");
  
              }
          }
  
      }
  
  
      private boolean checkDataBase(){
  
          SQLiteDatabase checkDB = null;
  
          try{
              String myPath = DB_PATH + DB_NAME;
              checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
  
          }catch(SQLiteException e){
  
              //database does't exist yet.
  
          }
  
          if(checkDB != null){
  
              checkDB.close();
  
          }
  
          return checkDB != null ? true : false;
      }
  
  
      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.OPEN_READONLY);
  
      }
  
      @Override
      public synchronized void close() {
  
              if(myDataBase != null)
                  myDataBase.close();
  
              super.close();
  
      }
  
      @Override
      public void onCreate(SQLiteDatabase db) {
  
      }
  
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  
      }
      ....
  
  }
  </code></pre>
  
  <p>My database structure :
  <img src="https://i.stack.imgur.com/kMdgL.jpg" alt="SQLite view of db that I have inserted in assets folder"></p>