Sid*_*ash 6 database sqlite android
通过命令提示符连接到android中的Sqlite DB时出现错误。
这是我遵循的步骤:
试图通过命令提示符限制到数据库:
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:/ #
Run Code Online (Sandbox Code Playgroud)实际上,我想发布屏幕快照以便更好地理解,但是我不知道为什么它不起作用(可能是由于我的办公室防火墙所致)。
Permision for SampleDB is '-rw-rw----';
Run Code Online (Sandbox Code Playgroud)
那我在哪里磨损呢?
注意:该数据库具有一个示例表,我可以将写入数据读取到该表中。
这看起来就像我不久前遇到的同样的问题。
你可以先测试一些东西。使用 与设备连接后adb shell
,请尝试ls data/data/<application_namespace_id>/databases/
。如果返回opendir failed, Permission denied
,则应该是我遇到的相同问题:ADB 权限问题。这就是解决我的问题的方法:
现在,重试您的命令。但一旦您输入,adb shell
还要输入su
以启用超级用户模式。您应该会#
在超级用户模式下看到确认您的 shell 的信息。
如果您只连接了一台设备,它现在应该可以工作了。否则,您还应该通过列出首先运行的设备并连接到正确的设备来确认您是否adb devices
连接到正确的设备adb -d <device_reference_here> shell
。
您可能还需要将手机扎根才能执行此操作。
希望能帮助到你。干杯!
小智 5
I had similar below issue on android emulator:
**Issue:**
1)generic_x86:/ $ sqlite3 EmployeeRecords
SQLite version 3.9.2 2015-11-02 18:31:45
Enter ".help" for usage hints.
2)sqlite> select * from employee
...> ;
Error: unable to open database "EmployeeRecords": unable to open database file
**Solution**
1)C:\Users\Hpo\AppData\Local\Android\sdk\platform-tools>adb shell
2)generic_x86:/ $ exit
3)C:\Users\Hpo\AppData\Local\Android\sdk\platform-tools>adb root
4)C:\Users\Hpo\AppData\Local\Android\sdk\platform-tools>adb root restarting adbd as root
5)C:\Users\Hpo\AppData\Local\Android\sdk\platform-tools>adb shell
6)generic_x86:/ # cd /data/data/com.example.hpo.crud_myapplication/databases/
7)generic_x86:/data/data/com.example.hpo.crud_myapplication/databases #
sqlite3 EmployeeRecords
8)sqlite> select * from employee
...> ;
1|sachin|15000
and it's working.
Run Code Online (Sandbox Code Playgroud)