微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。