android studio,问题与“android.database.sqlite.SQLiteException:没有这样的表:”

问题描述

我需要从数据库中的表“级别”中读取行。 数据库将在应用程序首次启动时从资产复制到数据库文件夹。 当我尝试查看文件夹“数据库”中的内容时,inside 就是其中的内容

如果我将所有文件保存在桌面上的数据库文件夹中,并在“db browser for sqlite”上打开 dbarkanoid,则“levels”表不存在。

如果我只将 dbarkanoid 保存在桌面上的数据库文件夹中,并在“db browser for sqlite”上打开 dbarkanoid,则存在“levels”表。

所以,当然,如果我从数据库删除 shm 和 wal 文件,该应用程序可以正常工作并且可以毫无问题地找到“级别”表。

那就是从assets复制db的方法

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,length);
        }
        myInput.close();
        myOutput.flush();
        myOutput.close();

    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)