Мы разработали приложение для платформы Android с предустановленной базой данных SQLite. Используя SQLiteOpenHelper, в первом выполнении приложения мы копируем базу данных из «Активы» для каталога данных приложения (/ data/data/br.com.lwu/databases/appdatabase.sqlite). Это работает, на большинстве устройств. Но у нас возникают проблемы с LG мобильных телефонов ниже:Мобильные телефоны LG не могут получить доступ к базам данных SqLite
- LG Optimus One
- LG-P500
- LG-P500h
По-видимому, база данных копируется правильно. Но приложение не может получить доступ к базе данных (такая таблица). Нам нужна помощь!
// Copy Database:
private static String DB_PATH = "/data/data/br.com.lwu/databases/";
private static String DB_NAME = "appdatabase.sqlite";
private void copyDataBase() throws IOException{
InputStream myInput = myContext.getAssets().open(DB_NAME);
String outFileName = DB_PATH + DB_NAME;
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
}
public void openDataBase() throws SQLException{
String myPath = DB_PATH + DB_NAME;
if (myDataBase == null) {
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
}
}
@Override
public synchronized void close() {
super.close();
if (myDataBase != null)
if (myDataBase.isOpen()) {
myDataBase.close();
myDataBase = null;
}
}
показать нам код, как вы получаете доступ к базе данных после копирования? – waqaslam
Это код ... –
Относительно проблемы или нет, вам не следует принимать частный путь хранения, но получить его из соответствующего API. –