Kus*_*gla 17 sql android android-room
在android中使用room for database.当我试图在sqlviewer中查看数据时,在数据库文件Myapp.db文件中找不到表是空的.数据/数据/包/数据库/ Myapp.db
kos*_*sas 60
转到文件夹数据/数据/包/数据库/必须有三个文件.db,.db-shm,.db-wal,所有这三个文件复制到一个位置,然后打开你的Myapp.db打开数据库文件这两个额外的文件需要
Avi*_*aun 19
在android studio 3.1.*
在工具窗口栏中点击" Device File explorer"一般你可以在屏幕的右下角找到它
打开目录 data/data/your-application-package/databases
使用新架构3文件在数据库目录中创建
your-database-name
your-database-name-shm
your-database-name-wal
Run Code Online (Sandbox Code Playgroud)
你必须在同一目录中导出所有3
然后在任何sqlite浏览器中打开第一个文件(仅使用your-database-name).
现在你可以看到你的所有数据.......
your-database-name-shm
your-database-name-wal
Run Code Online (Sandbox Code Playgroud)
如果只打开数据库文件,则打开db文件需要这两个额外的文件,而不是在该文件中找不到任何表
确保在退出应用程序时关闭数据库,这将确保提交所有未完成的事务:
@Override
protected void onDestroy() {
super.onDestroy();
// close the primary database to ensure all the transactions are merged
MyAppDatabase.getInstance(getApplicationContext()).close();
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用 Android Studio 中的设备文件资源管理器(在 /data/data/<your app package name>/databases 下查看)从您的设备复制数据库。
您还可以强制执行 WAL 检查点而不是关闭数据库,但在我看来,此选项更容易(除非您尝试以编程方式或类似方式在应用程序中备份数据库)并且关闭数据库是一个好主意(即使在 Android Room 文档中没有真正提到它)。
在此处阅读有关 sqlite WAL 的更多信息:https : //www.sqlite.org/wal.html
| 归档时间: |
|
| 查看次数: |
9209 次 |
| 最近记录: |