sqlite3 提示 not found

来源:互联网 发布:cnnic数据报告 2017 编辑:程序博客网 时间:2024/04/29 09:16

在android开发中使用adb shell下的sqlite3命令来查看SQLite数据库时,出现了 [ sqlite3 : not found]错误。在网上搜索了一下问题的原因:原来是模拟器或真机中的/system/xbin 目录下少了sqlite3 这个文件。解决方法如下:

[1] 让/system文件夹可读写

$ adb shell # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system         --------------这一步可能没有权限成功执行,虽然没有报错

[2] 打开另外一个有sqlite3(/system/xbin/sqlite3)的模拟器或者真机(要获得root权限),把sqlite3文件导出,并把它导入到没有sqlite3的机器的 /system/xbin 目录下面。[注:可以使用DDMS或者File Exploer来完成这个操作]

$ adb push sqlite3 /system/xbin                                              ---------无法push成功,提示permission denied

[3] 修改 sqlite3 权限

# chmod 4755 /system/bin/sqlite3                                            

[4] 设置 /system为只读文件

# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system

[5] 通过上面的4个步骤就可以使用 sqlite3 命令来操作 SQLite 数据库了。


说一下我使用的方法:

1.首先打开一个模拟器:命令 adb pull /system/xbin/sqlite3 d:\               作用:将sqlite放到d盘根目录

2.关掉模拟器,插入无法正常使用sqlite3命令的样机,输入命令:adb push d:\sqlite3 /sdcard/       作用:将sqlite3先放到sdcard根目录下,因为直接push到system/xbin目录肯定要提示权限错误;

3.adb shell   然后su获取root权限,再 cp /sdcard/sqlite3  /system/xbin 


OK,大功告成


2 0