我的db记录没有在sqlite浏览器中显示

时间:2018-03-15 06:57:38

标签: android sqlite

我正在使用带有数据库操作的Android应用程序。为了调试目的,我从这里安装了SQLite浏览器enter link description here。我的问题是,当我从模拟器导出我的db文件并在浏览器中打开它时,它只显示元数据,但不显示我的实际应用数据。enter image description here

是的,我使用Android设备管理器从正确的位置导出了db文件。enter image description here

正如您所看到的,还有一些其他文件也在数据库文件夹(journal& .file)中创建。 所以我想知道是否有人知道最近数据在SQLite DB中的存储方式是否有任何变化。我使用 Android Studio 3.0.1

提前感谢您的帮助。

以下是包名称为enter image description here

的新屏幕截图

来自Common SQLite实用程序的日志

D/SQLITE_CSU: logCursorColumns invoked. Cursor has the following 4 columns.

D/SQLITE_CSU: Column Name 1 is id

D/SQLITE_CSU: Column Name 2 is title

D/SQLITE_CSU: Column Name 3 is uid

D/SQLITE_CSU: Column Name 4 is address

D/SQLITE_CSU: logCursorData Cursor has 1 rows with 4 columns.

D/SQLITE_CSU: Information for row 1 offset=0
                For Column id Type is INTEGER value as String is 1 value as long is 1 value as double is 1.0

                For Column title Type is STRING value as String is BBC value as long is 0 value as double is 0.0

                For Column uid Type is STRING value as String is PajUFVIZvKbNWAHAgdJ9xpf6gi33 value as long is 0 value as double is 0.0

                For Column address Type is STRING value as String is http://feeds.bbci.co.uk/news/world/rss.xml value as long is 0 value as double is 0.0

这是logDatabaseInfo日志“ -

D/SQLITE_CSU: DatabaseList Row 1 Name=main File=/data/data/com.rss.feedster.rss_feedster/databases/rssFeeds
D/SQLITE_CSU: Database Version = 3
D/SQLITE_CSU: Table Name = android_metadata Created Using = CREATE TABLE android_metadata (locale TEXT)
D/SQLITE_CSU: Table = android_metadata ColumnName = locale ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table Name = feeds Created Using = CREATE TABLE feeds(id INTEGER PRIMARY KEY,title TEXT,uid TEXT,address TEXT)
D/SQLITE_CSU: Table = feeds ColumnName = id ColumnType = INTEGER Default Value = null PRIMARY KEY SEQUENCE = 1
D/SQLITE_CSU: Table = feeds ColumnName = title ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = feeds ColumnName = uid ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = feeds ColumnName = address ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table Name = user_info Created Using = CREATE TABLE user_info(id INTEGER PRIMARY KEY,uid TEXT,nickname TEXT,email TEXT,age TEXT,mobile TEXT,password TEXT,gender TEXT,photoURL TEXT)
D/SQLITE_CSU: Table = user_info ColumnName = id ColumnType = INTEGER Default Value = null PRIMARY KEY SEQUENCE = 1
D/SQLITE_CSU: Table = user_info ColumnName = uid ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = nickname ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = email ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = age ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = mobile ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = password ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = gender ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = photoURL ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0

1 个答案:

答案 0 :(得分:1)

我认为您只是找错了地方,点击浏览数据标签,然后选择消息表格会显示是否有任何数据。

原因是您正在查看数据库结构,这将显示将用于创建它们的表和SQL,以及列定义的列和SQL。

让名为android_metadata的表很可能表明该数据库来自Android设备,而不是来自其他来源,即您只能在Android设备上找到它。

您的屏幕截图显示有一个名为Messages的表,这不是自动生成的,也不是由SQLite创建的。根据屏幕截图,它至少有两列。一个名为类型,并且具有已定义的列类型INTEGER以及NOT NULL约束,另一列名为条目,其column_type为BLOB。

这里有一个类似的数据库,它是从模拟器中复制过来的,显示了当你查看数据库结构(朋友是表格和列已经扩展)时如何显示(填充1行)。

enter image description here

请注意,“浏览数据”表已突出显示,并且有一个指向它的箭头。单击此按钮将显示如下内容: -

enter image description here

这是浏览android_metadata表的数据(只有1行,1列)。在突出显示的表格的右侧有一个下拉列表,单击此按钮并选择消息表。您将显示数据,例如(显然这是针对Friends表): -

enter image description here

  • 该表有1行,每列6列
    • _id 的值为 1
    • _name 的值为测试名称
    • 等等

编辑调试信息。

很明显,您打算从模拟器复制/导出的表不是您在 DB Browser for SQLite 中查看的数据库。您通过提供的实用程序提供的数据库是: -

<强> /data/data/com.rss.feedster.rss_feedster/databases/rssFeeds

因此,您要导出副本然后在DB Browser for SQLite中打开该文件。

不是 google_app_measurement_local.db

我认为问题基本上是您认为数据库必须具有 .db 文件扩展名。 .db (文件扩展名)不会影响它纯粹用于指示文件可能的类型的数据。

我毫不怀疑,如果您打开上面指出的文件,那么您将看到数据和结构正如您所期望的那样。请注意,要查看文件,请选择文件名输入右侧的所有文件

作为示例,以下显示了一个文件导出/复制为 db1.rumplestiltskin ,然后在 DB Browser for SQLite 中打开: - < / p>

enter image description here

enter image description here

修复

在设备监视器中导出/复制/保存文件 /data/data/com.rss.feedster.rss_feedster/databases/rssFeeds ,然后在数据库浏览器中打开SQLite ;注意到如果它没有 .db .sqlite 文件扩展名,那么您必须从文件中选择所有文件文件名输入右侧输入选择器,以便能够从文件浏览器中选择文件。

或许阅读Filename extension,更详细地解释文件扩展。