【问题标题】:How to view Android SQLLite database on emulator如何在模拟器上查看 Android SQLite 数据库
【发布时间】:2013-10-31 12:56:51
【问题描述】:

我已经查看了有关此主题的先前问题的答案,但似乎无法让其中任何一个起作用。我正在 Eclipse 中开发,并在模拟器上运行该应用程序。

似乎最简单的方法是将adb shell 与 sqlite3 命令结合使用。使用 adb 我可以看到模拟器设备。当我启动 adb shell 时,我看到了一个我希望找到数据库的目录:

/data/data/com.example.myfirstapp/databases/  (where com.example.myfirstapp is the package name of the app)

但是,该目录中没有 .db 文件。有一个与应用程序创建的数据库同名的文件,但它没有.db 扩展名。

(我很确定我看到的是模拟设备的文件系统,因为它确实有我的应用程序的目录)。

更新

在浏览完所有响应,通过 adb/sqlite3 访问数据库并使用 DDMD/Sqlite 浏览器后,我意识到我在代码中犯了一个“新手”错误:

public class MessageOpenHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "MyFirstApp.db"; 
    public static final String MESSAGE_COLUMN = "message";
    public static final String MESSAGE_TABLE_NAME = "messages";   

    private static final String MESSAGE_TABLE_CREATE = String.format("create table %s (%s TEXT);", MESSAGE_TABLE_NAME, MESSAGE_COLUMN);

    public MessageOpenHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);      
    }

按照惯例,数据库名称应包含.db 扩展名。尽管没有它也可以正常工作,但 Eclipse 的 Sqlite 浏览器将无法识别该文件。希望像我这样的其他新手不会犯同样的错误。

【问题讨论】:

  • 这是您的数据库。没有必要具有 .db 扩展名。使用 sqlite3.exe 打开它
  • @Mohamed_AbdAllah:是的,谢谢。出于某种原因,当我第一次运行.tables 命令时,sqlite3 抛出了一个错误,提示找不到数据库。可能是我打错了路径。

标签: android database shell android-emulator


【解决方案1】:

是的,'David N' 说的是真的,但在检查数据 -> 数据 -> 包名称 -> 数据库名称 之前,不要忘记点击位于左上角设备选项卡的设备。

【讨论】:

    【解决方案2】:

    您提到您正在使用 Eclipse ...您可以进入 DDMS 透视图,选择 db 文件并在 Sqllite Browser 中查看.. 如下所示...

    编辑:- 忘了提到我们需要在这里添加插件...

    关注link here

    步骤:-

    1. 下载jar file
    2. 在 eclipse/dropins/ 文件夹中添加 jar 文件
    3. 重启 Eclipse.. 你会注意到 DDMS 透视图中的图标..

    【讨论】:

    • 我的 DDMS 选项卡没有 Sqlite 浏览器图标。这是单独安装吗?
    • @SamGoldberg 抱歉忘记提及如何查看图标.. 更新了答案.. :)
    • CRUSADER:我安装了 Sqlite 浏览器,现在它显示在工具栏上,但由于某种原因,当我单击文件时它被禁用。我猜这是因为该文件没有.db 扩展名? (我可以使用 sqlite3 在 adb shell 中查看数据库并针对它发出 select 语句,所以数据库似乎没问题)。
    • 好的。我得到了它。我没有意识到的一件事是我的代码没有遵循将.db 添加到数据库名称的约定,因此在单击文件时禁用了 Sqlite 浏览器图标/菜单选项。现在我知道得更多了!
    【解决方案3】:

    在eclipse中,可以使用DDMS选项卡查看SQLite数据库。

    转到文件资源管理器 -> 数据 -> 数据 -> 包名称 -> 数据库名称

    您现在可以推送或拉取数据库...

    希望对你有帮助

    【讨论】:

    • 是的,'David N' 说的是真的,但不要忘记在检查数据 -> 数据 -> 包名称 -> 数据库名称之前单击位于左上角设备选项卡的设备
    猜你喜欢
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    相关资源
    最近更新 更多