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