android studio,“android.database.sqlite.sqliteexception:没有这样的表:”

bcs8qyzn  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(211)

我需要从数据库的“levels”表中读取行。在第一次启动应用程序时,数据库将从assets复制到databases文件夹。当我试图看到文件夹“数据库”里面有什么。
如果我将所有文件保存在桌面上的databases文件夹中,并在“db browser for sqlite”上打开dbarkanoid,则“levels”表不存在。
如果我只将dbarkanoid保存在桌面上的databases文件夹中,并在“dbbrowserforsqlite”上打开dbarkanoid,“levels”表就存在了。
因此,当然,如果我从数据库中删除shm和wal文件,应用程序工作正常,并且找到“levels”表没有问题。
即,从资产复制数据库的方法:

private void copyDataBase() throws IOException {

        OutputStream myOutput = new FileOutputStream(DB_PATH + DB_NAME);
        byte[] buffer = new byte[1024];
        int length;
        InputStream myInput = myContext.getAssets().open(DB_NAME);
        while ((length = myInput.read(buffer)) > 0) {
            myOutput.write(buffer, 0, length);
        }
        myInput.close();
        myOutput.flush();
        myOutput.close();

    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题