net.sqlcipher.database.SQLiteException: file is not a database: , while compiling: select count(*) from sqlite_master

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP



net.sqlcipher.database.SQLiteException: file is not a database: , while compiling: select count(*) from sqlite_master



Error this line :


mDataBase = SQLiteDatabase.openDatabase(dbPath, "123", null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);



When open the database . but whats Wrong? how to open database with password? Can any one help me?


error : net.sqlcipher.database.SQLiteException: file is not a database: , while compiling: select count(*) from sqlite_master



Can any one help me to solve it? thanks in advance


import android.content.Context;
import android.database.SQLException;
//import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteOpenHelper;
import net.sqlcipher.database.SQLiteDatabase.CursorFactory;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.File;
import net.sqlcipher.database.SQLiteDatabase;
import android.app.Activity;
import android.os.Bundle;

public class DatabaseHelper extends SQLiteOpenHelper

private static String TAG = DatabaseHelper.class.getName();
private static String DB_PATH = "";
private static String DB_NAME = "ec.db";// Database name
private SQLiteDatabase mDataBase;
private final Context mContext;
File databaseFile=null;
public DatabaseHelper(Context context)
super(context, DB_NAME, null, 1);
DB_PATH = context.getApplicationInfo().dataDir + "/databases/";
this.mContext = context;
SQLiteDatabase.loadLibs(context);
File databaseFile = context.getDatabasePath(DB_NAME);
databaseFile.mkdirs();


public void createDataBase() throws IOException
// If database not exists copy it from the assets
boolean mDataBaseExist = checkDataBase();
if (!mDataBaseExist)
this.getWritableDatabase("123");
this.close();
try
// Copy the database from assests
copyDataBase();
Log.e(TAG, "createDatabase database created");
catch (IOException mIOException)
throw new Error(mIOException.toString() + " : " + DB_PATH
+ DB_NAME);// "ErrorCopyingDataBase"




private boolean checkDataBase()
File dbFile = new File(DB_PATH + DB_NAME);
return dbFile.exists();


// Copy the database from assets
private void copyDataBase() throws IOException
InputStream mInput = mContext.getAssets().open(DB_NAME);
String outFileName = DB_PATH + DB_NAME;
OutputStream mOutput = new FileOutputStream(outFileName);
byte mBuffer = new byte[4096];
int mLength;
while ((mLength = mInput.read(mBuffer)) > 0)
mOutput.write(mBuffer, 0, mLength);

mOutput.flush();
mOutput.close();
mInput.close();


// Open the database, so we can query it
public boolean openDataBase() throws SQLException
String mPath = DB_PATH + DB_NAME;
//File dbFile = new File(DB_PATH + DB_NAME);
//File databaseFile = mContext.getDatabasePath(DB_NAME);
//databaseFile.mkdirs();
//databaseFile.delete();

SQLiteDatabase.loadLibs(mContext);

String dbPath = mContext.getDatabasePath("ec.db").getPath();


//databaseFile.delete();
SQLiteDatabase.loadLibs(mContext);
//mDataBase = SQLiteDatabase.openOrCreateDatabase(databaseFile, "123", null);
//mDataBase = SQLiteDatabase.openDatabase(mPath, "123",null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
mDataBase = SQLiteDatabase.openDatabase(dbPath, "123", null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);

return mDataBase != null;


@Override
public synchronized void close()
if (mDataBase != null)
mDataBase.close();
super.close();


@Override
public void onCreate(SQLiteDatabase db)



@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)








1 Answer
1



You are referencing the password string value of 123456Sa, however your call within createDataBase uses the value of 123 as a password to getWritableDatabase.


123456Sa


createDataBase


123


getWritableDatabase






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

Firebase Auth - with Email and Password - Check user already registered

Dynamically update html content plain JS

How to determine optimal route across keyboard