当前位置:首页 > 数据库 > SQlite

android – Sqlite错误:无法打开数据库“/data/data/PackageName/databases/SampleDB.db”:无法打开数据库文件

我通过命令提示符连接到Android中的Sqlite DB时出错.

以下是我遵循的步骤:

>我已经通过android中的java程序创建了Sqlite DB.创建表并将数据插入其中.执行查询以获取数据.一切都很好!!!!
>尝试通过命令提示符连接到DB:

D:adt-bundle-windows-x86-20131030adt-bundle-windows-x86-20131030sdkplatform-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失败,权限被拒绝,那应该是我遇到的同样问题:ADB权限问题.这就解决了我的问题:

>转到设备中的“开发者选项”(如果看不到它,请转到手机中的“设置”>“关于手机”,然后点按“内置号码”几次,直到启用“开发人员选项”)
>然后确保实际启用了“开发人员选项”
>在“开发者选项”屏幕上,启用“Android调试”以允许Android调试
>在同一屏幕上,确保ADB具有“Root access”权限

现在,再试一次你的命令.但是一旦你输入adb shell也输入su来启用超级用户模式.您应该在超级用户模式下看到#确认您的shell.

如果您只连接了一台设备,它现在可以正常工作.否则,您还应通过列出首次运行adb设备的设备并连接到右侧adb -d< device_reference_here>来确认您是否已连接到正确的设备.贝壳.

您可能还需要根植于此的手机.

希望能帮助到你.干杯!


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!