Android真机不能写入MySQL_Android 调试真机 SQLite 数据库

本文介绍了在Android真机调试SQLite数据库时遇到的权限问题,包括sqlite3命令找不到、权限不足、CANNOT LINK EXECUTABLE错误及数据库文件无法打开等问题,并提供了相应的解决办法,如复制sqlite3命令文件、修改文件权限、添加缺失库等。
摘要由CSDN通过智能技术生成

最近做东西,先是在模拟器上进行数据库的测试,读写操作,发现没问题了之后开始进行真机的测试。但是,为了在测试的时候能查看数据库的变化,确保程序的值都正确的写入了数据库。就通过adb shell连接手机进行查看。但是发现和模拟器不同,有各种各样的问题,不过总结下来一句话就是---权限不够。

现将问题总结如下,并给出我的一些解决办法,都是一些笨方法。比较粗暴。

问题一: sh: sqlite3 command not found.

adb shell进入程序目录后通过 sqlite3 "databases name",后提示这个,是因为/system/xbin/下没有sqlite3 文件的命令执行文件。解决的方法就是拷贝一个进去。网上关于这方面的东西也很多。但是也有很多人说不好使。原因在于sqlite3也是有很多版本的,个人推荐的方法是先弄清楚自己的真机的Android版本。在AVD中新建一个版本一样的模拟器,然后将模拟器中/system/xbin/sqlite3 拉出来,放进真机中。

问题二: permission denied

接着上面的步骤我们发现,文件放进去了,但是文件的属性是读写,没有执行权限。所以解决办法就是给它执行的的权限。简单粗暴一点的方法就是 chmod 777.简单又粗暴。其实在上面或者这里我们都会发现一个问题,当我们以adb shell 去操作真机时,会发现,由于手机的系统都是read only,所以上面和我们接下来的大部分操作都会被拒绝或者提醒权限不够,这时我们需要暂时的把文件系统改为可写的(我对linux并不是很熟悉,这是在网上搜集的解决方法)。

mount -o remount,rw -t yaffs2  /system/xbin

问题三: CANNOT LINK EXECUTABLE

修改完sqlite3文件的可执行权限后,还是执行失败,是因为少了libncurses.so库文件,上网上down下来然后拉进/system/lib下。

问题四: Error: unable to open database "****": unable to open database file

做完上面的东西,已经折腾了半天,实在是很无语。本以为快要解决的时候。突然又出现了这个问题。这个问题让我有点摸不着头脑,因为百度了一下发现,这依然是权限问题。但是我不懂的是作为一个数据库文件,有了读写的权限为什么还是不能被sqlite3加载。在我尝试给数据库赋上执行权限时,就能够打开了个人感觉一个文件不需要执行,只需要被另一个程序打开时是不需要执行权限的。还望大家看到后告知我一声。虽然解决了但是依然莫名其妙。

在解决了上述的问题后就能够通过adb shell 调试真机的数据库了。网上也有一些这方面的帖子,此篇文章只是作为补充说明和个人碰到问题集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值