Одно из моих приложений загружает базу данных с сервера.Когда я устанавливаю приложение на свой телефон, оно загружает файл правильно и загружает информацию, без каких-либо исключений и т. Д.
Однако, когда я загружаю APK в Android Market Place и загружаю его на телефон,приложение загружает базу данных, а затем вылетает, сообщая, что обработчик sqlite не смог открыть базу данных.
Ниже приведен код:
В SQLiteOpenHelper:
this.FULL_DB_PATH = new String(this.getWritableDatabase().getPath());
this.getWritableDatabase();
// Code for retrieving the database off of the server:
private void copyDataBase(){
InputStream myInput=null;
OutputStream myOutput=null;
try{
// opening connections
URL url = new URL("server_url_here");
URLConnection ucon=url.openConnection();
myInput = ucon.getInputStream();
myOutput = new FileOutputStream(this.FULL_DB_PATH);
// write to the db here
byte[] buffer = new byte[1024*1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
}
catch(Exception e)
{
try{
myOutput.flush();
myOutput.close();
myInput.close();
}
catch(Exception es){}
}
}
Я не знаю, почему мой коллега сохраняет БД с расширением mp3, но ... он работает, когда мы устанавливаем apk ad-hoc.
Для:
myOutput = new FileOutputStream(this.FULL_DB_PATH);
Я также пытался:
myOutput = this.getApplicationContext().openFileOutput(this.FULL_DB_PATH, Context.MODE_WORLD_READABLE);
Но это тоже не работает.
Любая помощь очень ценится !!Я пару часов рвал на себе волосы из-за этого, и я просто хочу, чтобы это закончилось, ха-ха.