【发布时间】: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