lilienfa lilienfa - 1 year ago 58
Java Question

Issue with storing data with SQLite (android)

I have been going crazy on the internet, looking for an answer.

Currently, I am building an android application, which uses the SQLite DB.
Everything is set up, sign up works, login works, I connected the camera and can take pictures, which get saved to my local gallery. However, what doesn't work is the following:

  • Emulator is not working. Testing on my phone.

  • DDMS is not displaying my DB.

  • CPU is not supporting the required features VT-x or SVM.

However, main point is, I have been searching everywhere for the SQLiteDB. Where does android studio store the databases for SQLiteDB?

Also, I tried to write the data on my local storage of my phone, which also didn't work:

public class DBUtil {

//Because of the fact that laptop refuses to let me use an emulator, data gets saved to my phone directory, folder DataAndroid
final static String FOLDER_EXTERNAL_DIRECTORY = Environment.getExternalStorageDirectory()+ "/DataAndroid";

//saving the data in my local data folder
public static void copyDatabaseToExtStg(Context context){

//external storage file
File externalDirectory = new File(FOLDER_EXTERNAL_DIRECTORY);

File toFile = new File(externalDirectory, DBHelper.DATABASE_NAME);
//internal storage file
File fromFile = context.getDatabasePath(DBHelper.DATABASE_NAME);
if (fromFile.exists())
copy(fromFile, toFile);

//copy from making the file to 'writing' the file
static void copy(File fromFile, File toFile) {
try {
FileInputStream is = new FileInputStream(fromFile);
FileChannel src = is.getChannel();
FileOutputStream os = new FileOutputStream(toFile);
FileChannel dst = os.getChannel();
dst.transferFrom(src, 0, src.size());
src.close(); is.close();
dst.close(); os.close();
} catch (Exception e) {


My DBHelper class looks as follows:

public class DBHelper extends SQLiteOpenHelper {

//db attr.
SQLiteDatabase DataBase;

//confirm password doesn't need to be stored, it is just a small check up
private static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "contacts.db";
private static final String TABLE_NAME = "contacts";
private static final String COLUMN_ID = "id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_SURNAME = "surname";
private static final String COLUMN_EMAIL = "email";
private static final String COLUMN_USERNAME = "username";
private static final String COLUMN_PASSWORD = "password";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);

//create table +TABLE_NAME
private static final String TABLE_CREATE = "create table contacts(id integer primary key not null , " +
"name text not null, surname text not null, email text not null, username text not null, password text not null);";

public void onCreate(SQLiteDatabase DataBase) {
this.DataBase = DataBase;

public void insertContact(Contact contact){

//To be able to insert anything in DB, it should be writeable.
//Because of the fact that password.equals(confirmpassword), COLUMN_CONFPASS. is missing in list below
DataBase = this.getWritableDatabase();
ContentValues values = new ContentValues();

String query = "SELECT * FROM contacts";
Cursor cursor = DataBase.rawQuery(query, null);
int count = cursor.getCount();

//To make sure that the count increments, istead of assigning same number to different numbers.
values.put(COLUMN_ID, count);
values.put(COLUMN_NAME, contact.getName());
values.put(COLUMN_SURNAME, contact.getSurname());
values.put(COLUMN_EMAIL, contact.getEmail());
values.put(COLUMN_USERNAME, contact.getUsername());
values.put(COLUMN_PASSWORD, contact.getPassword());

//Insert contact object into DB
DataBase.insert(TABLE_NAME, null, values);

//Keeping DB up to date
public void onUpgrade(SQLiteDatabase DataBase, int CurrentVersionOld, int NewVersion) {


//Read the DB
public String searchPassword(String username) {

DataBase = this.getReadableDatabase();
String query = "SELECT username, password FROM " + TABLE_NAME;
Cursor cursor = DataBase.rawQuery(query, null);
String uname, pw;

//If the password is not found, then print:
pw = "not found";

if (cursor.moveToFirst()) {

do {
//assign index to username(0) and password (1)
uname = cursor.getString(0);
pw = cursor.getString(1);

if (uname.equals(username)) {
pw = cursor.getString(1);
} while (cursor.moveToNext());

} return pw;


Can someone help me please?
My coding is not very good. Please bear with me :) (new to this)

Answer Source

Where does android studio store the databases for SQLiteDB?

If you are running in emulator, this link may help you

If you are using phone, you can download SQLite Manager from google play store.

Here the link

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download