Can't open database from assets folder [Android] Can't open database from assets folder [Android] sqlite sqlite

Can't open database from assets folder [Android]


can you try this code and then please tell me result.be sure you check all file names.

@Overrideprotected void onCreate(Bundle savedInstanceState) {       //.......    DatabaseHelper dbHelper = new DatabaseHelper(this);    dbHelper.createDatabase();    dbHelper.openDatabase();    // do stuff    Cursor data =dbHelper.Sample_use_of_helper();    dbHelper.close();}class DatabaseHelper extends SQLiteOpenHelper {    private static String DB_PATH = "/data/data/com.mycomp.myapp/databases/";    private static String DB_NAME = "database.db";    private SQLiteDatabase myDataBase;    private final Context myContext;        public DatabaseHelper (Context context) {            super(context, DB_NAME, null, 1);            this.myContext = context;        }        public void crateDatabase() throws IOException {            boolean vtVarMi = isDatabaseExist();            if (!vtVarMi) {                this.getReadableDatabase();                try {                    copyDataBase();                } catch (IOException e) {                    throw new Error("Error copying database");                }            }        }        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)) > 0) {                myOutput.write(buffer, 0, length);            }            // Close the streams            myOutput.flush();            myOutput.close();            myInput.close();        }        private boolean isDatabaseExist() {            SQLiteDatabase kontrol = null;            try {                String myPath = DB_PATH + DB_NAME;                kontrol = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);            } catch (SQLiteException e) {                kontrol = null;            }            if (kontrol != null) {                kontrol.close();            }            return kontrol != null ? true : false;        }        public void openDataBase() throws SQLException {            // Open the database            String myPath = DB_PATH + DB_NAME;            myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);        }        public Cursor Sample_use_of_helper() {            return myDataBase.query("TABLE_NAME", null, null, null, null, null, null);        }        @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) {        }    }


remove .db extension from both DB_NAME and .open("database.db")
It looks ugly but currently same thing is working for me....
And before installing new apk please do Clear Data for earlier installed apk

And still if it won't work, please mention your database size.