android - SQLite 错误 : unable to open database "/data/data/PackageName/databases/SampleDB.db": unable to open database file

标签 android database sqlite

通过命令提示符连接到 android 中的 Sqlite DB 时出现错误。

以下是我遵循的步骤:

  • 我已经在 android 中通过 java 程序创建了 Sqlite 数据库。创建表并向其中插入数据。执行查询以获取数据。一切都很好!!!!
  • 试图通过命令提示符连接到数据库:

    D:\adt-bundle-windows-x86-20131030\adt-bundle-windows-x86-20131030\sdk\platform-tools> adb shell
    
    adb shell
    
    root@generic:/ #  sqlite3 /data/data/package-name/databases/SampleDB.db
    
    sqlite3 /data/data/package-name/databases/Samp
    ant.encryptdata/databases/Samp                                                <leDB.db
    
    SQLite version 3.7.11 2012-03-20 11:35:50
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    
    sqlite> .tables
    .tables
    
    SQL Error: unable to open database "/data/data/com.congnizant.encryptdata/databases/SampleDB.db": unable to open database file
    1|root@generic:/ # 
    

实际上我想发布屏幕截图以便更好地理解,但我不知道为什么它不起作用(可能是因为我办公室的防火墙)。

Permision for SampleDB is '-rw-rw----';

那么我在做什么呢?

注意:数据库中有一个示例表,我可以将数据读写到该表中。

最佳答案

好像是我不久前遇到的同样问题。

您可以先测试一些东西。使用 adb shell 连接到设备后, 尝试 ls data/data/<application_namespace_id>/databases/ .如果它返回 opendir failed, Permission denied ,这应该是我遇到的同样问题:ADB权限问题。这是解决我的问题的方法:

  1. 转到您设备中的“开发者选项”(如果您看不到它,请转到手机中的“设置”>“关于手机”,然后多次点击“版本号”,直到启用“开发者选项”)
  2. 然后确保“开发人员选项”已实际启用
  3. 在“开发者选项”屏幕上,启用“Android 调试”以允许进行 Android 调试
  4. 在同一屏幕上,确保 ADB 具有“根访问”权限

现在,再次尝试您的命令。但是一旦你输入 adb shell还输入 su启用 super 用户模式。你应该看到 #在 super 用户模式下确认您的 shell。

如果您只连接了一台设备,它现在应该可以工作了。否则,您还应该通过首先运行 adb devices 列出您的设备来确认您是否连接到正确的设备。并连接到右边的adb -d <device_reference_here> shell .

您可能还需要对手机进行 root 操作才能执行此操作。

希望对您有所帮助。干杯!

关于android - SQLite 错误 : unable to open database "/data/data/PackageName/databases/SampleDB.db": unable to open database file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31672359/

相关文章:

database - 将数据库结果存储在本地存储中以增加加载时间?

database - 数据库规范化到底做了什么?

Android Facebook apprequest 通知不显示在手机上

android - Cordova hideKeyboardAccessoryBar 不工作

php - 更新 mysql,新数据从唯一 id 1 开始

sql - 如何仅从 sqlite 中提取数字数据?

python - 通过 sqlalchemy 关系通过 backref 属性获取 parent 的 child 会导致不必要的刷新

java - Android 在检索图像时给出空指针

android - 关联游标数据

ios - FMDB:NULL 值被检索为空字符串