извините за такую хромую проблему, но я не могу ее решить в течение 4 часов. Я пытаюсь скопировать базу данных из/папок активов, которые я мог бы использовать с SQLiteOpenHelper, но когда я пытаюсь открыть InputStream это дает мне сообщение об ошибке:Невозможно открыть базу данных из папки с ресурсами [Android]
E/Trace: error opening trace file: No such file or directory (2)
код:
public static final String DATABASE_PATH = "/data/data/com.mycomp.myapp/databases/";
public static final String DATABASE_NAME = "database.db";
@Override
protected void onCreate(Bundle savedInstanceState) {
try {
copyDatabase(getApplicationContext());
} catch (IOException e) {
e.printStackTrace();
Log.d(TAG, "blad" + e.toString());
}
}
private void copyDatabase(Context context) throws IOException {
String outfilename = DATABASE_PATH + DATABASE_NAME;
InputStream myinput = context.getAssets().open("database.db");
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();
}
Я * действительно * рекомендую вам использовать SQLiteAssetHelper вместо того, чтобы переводить свой собственный код для этого: https://github.com/jgilfelt/android-sqlite-asset-helper – CommonsWare
вы можете опубликовать остальную часть функции «copydDatabase» ? –
уверен. Я только что редактировал свой пост –