三星android note2/s4等手机无法ndk调试问题

针对三星、小米、HTC等手机NDK调试遇到的障碍,本文提供了一种解决方案。当遇到`run-as`工具使用异常时,需确保手机已root,并检查/data/及/data/data目录权限是否为drwxrwx--x。通过手动设置权限,然后重新尝试使用`run-as`,成功后可正常进行NDK-gdb调试。不过,此方法依赖于手机的root权限,未root设备无法应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三星手机、小米、htc手机等都有可能遇到ndk无法调试的问题,这时候我们先运行ndk看一下详细的输出。

ndk-gdb --verbose --force --start

输出类似下面的错误:

Found debuggable flag: false
Found gdbserver under libs/armeabi,assuming app was built with NDK_DEBUG=1
Found device gdbserver:/data/data/com.example.test/lib/gdbserver
ERROR: Could not extract package's datadirectory. Are you sure that
      your installed application is debuggable?


这个时候,请连接到adb shell上,试一下run-as工具能否正常工作,run-as后面加上你要调度的程序包名,如我这里就是com.example.test

shell@android:/ $ run-as com.example.test                            
run-as: Package 'com.example.test' has corrupt installation

如果出现上面的提示,那么可以试试下面的方法

前提:

         手机必须root过,不然无法尝试。

没有root过的手机,我只能嘿嘿了。

1.      查看一下/data/以及/data/data的目录权限

1|shell@android:/ $ ll -d /data/
drwxrwxr-x system   system            2014-02-21 17:16
 
shell@android:/ $ ll -d /data/data/
drwxrwx--x system   system            2014-02-27 11:10


注意,需要这两个目录的权限都为drwxrwx--x。如果不是,就需要手动设置一下。

2.      设置/data/以及/data/data目录的权限

首先需要用root权限,

shell@android:/ $ su

然后再运行

shell@android:/ # chmod 771 /data/
shell@android:/ # chmod 771 /data/data/

之后再尝试run-as

如果不报错,就说明成功了。

3.      再次运行ndk-gdb

这一步就不用说了,不出意外,应该就可以调试了。

问题就是,为什么调试个ndk, 手机还要root呢?这么奇葩。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值