У меня проблема с созданием базы данных SQLLite. Я проверил db или нет, закройте соединение db. Но я не понимаю, где я терпит неудачу или openOrCreateDatabase терпит неудачу.openOrCreateDatabase сбой
...
public class DBHelper extends SQLiteOpenHelper {
...
public DBHelper(Context context) {
super(context, DBName, null, version);
currentContext = context;
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),context.getString(R.string.cache_dirname));
else
cacheDir=context.getCacheDir();
if(!cacheDir.exists())
cacheDir.mkdirs();
DBPath=cacheDir.toString()+"/";
createDatabase();
}
private void createDatabase() {
boolean dbExists = checkDbExists();
if (dbExists) {
// do nothing
} else {
// **fails here**
DB = currentContext.openOrCreateDatabase(DBName, 0, null);
...
}
}
private boolean checkDbExists() {
SQLiteDatabase checkDB = null;
try {
String myPath = DBPath + DBName;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
} catch (SQLiteException e) {
Log.d("","database doesn't exists");
}
if (checkDB != null) {
checkDB.close();
}
return checkDB != null ? true : false;
}
}
Ошибка
Failed to open databse '/storage/emulated/0/My_test/dbtest'
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error code (14): Couldn't open database
Где неисправностью?
Да так работает ** DBPATH = "/ данные/данные /" + context.getPackageName() + "/ базы данных /" **; – zond