ndk-gdb时提示应用不可调试的解决方法

在开发包含c/c++本地代码的android项目中,通过gdb来调试代码是必不可少的前提。

android官方为此提供了ndk-gdb,看起来非常之nice。但个人在实践中发现还是有一系列问题需要记载下(ndk版本:r10e):

1) ndk-build NDK_DEBUG=1这个选项编译时要加上,一般将之定制在你的c/c++ builder中

2) 即便你按照1)做了,在项目根目录运行ndk-gdb的时候还是会报以下错误:

ERROR: Package faywong.github.io.mediakit is not debuggable ! You can fix that in two ways:

  • Rebuilt with the NDK_DEBUG=1 option when calling 'ndk-build'.

    • Modify your manifest to set android:debuggable attribute to "true",
then rebuild normally.

After one of these, re-install to the device!

然后我们乖乖地跑到AndroidManifest.xml里边去修改Application标签的debuggable属性,eclipse会提示你不能hardcode,可以通过如下方式设置下:

QQ20151012-1

3) 接下来还有可能会遇到如下问题:

ERROR: Could not find gdb.setup under ./libs/

这是由于ndk-gdb命令的bug带来的,它没有去参照ABI的不同设置去不同的目录下找gdb.setup文件(是一个脚本文件,帮你做一些繁琐的gdb server的启动,gdb client的启动和设置等任务)。

简单绕过这个错误的方式是将libs/{your abi, e.g. armeabi-v7a}里的gdb.setup直接拷贝至libs目录下

4) 在你跋山涉水,翻山越岭走了这么久之后,再次运行ndk-gdb,会出现以下惊喜:

ERROR: Non-debuggable application installed on the target device.

   Please re-install the debuggable version!

更新

现在可以结合gradle-experimental插件和ndk中搭载的lldb + android studio 2.0断点native代码了,虽然还不那么完善,bug多多,但是相比过去的ndk-gdb时代还是进步一点了。

时间: 2024-10-30 15:29:45

ndk-gdb时提示应用不可调试的解决方法的相关文章

Win8.1系统安装QQ时提示“安装路径无效”的解决方法

  Win8.1系统安装QQ时提示"安装路径无效"的解决方法          解决方法一:更改安装路径 在QQ安装界面,点击"自定义"然后浏览到一个非C盘,如D盘的文件夹来安装. 解决方法二:使用管理员方式运行安装程序 针对安装QQ没有权限可以右键点击QQ安装程序,然后以管理员身份运行,然后看能不能安装.

电脑运行腾讯游戏时提示服务器连接异常的解决方法

        电脑运行腾讯游戏时提示服务器连接异常的解决方法         1.打开开始--运行,输入services.msc,点击确定; 2.在服务列表中找到"Windows FireWall"服务项,双击打开; 3.直接禁用该服务,或者将启动类型设为手动,并停止服务状态,点击确定. 以上便是在电脑中运行腾讯游戏时提示服务器连接异常的解决方法.

win7系统电脑对U盘格式化操作时提示“windows无法完成格式化”解决方法

  win7系统电脑对U盘格式化操作时提示"windows无法完成格式化"解决方法.U盘设备大家经常使用到,可以用来储存.拷贝.转移数据.U盘设备在使用过程中也会遇到各种奇怪的问题,比如最近有位用户说在Ghost win7系统电脑对U盘格式化操作时提示"windows无法完成格式化",出现这个问题该如何解决呢?接下来小编和大家分享具体的解决方法,遇到此故障问题的用户来看看下面解决步骤吧. 方法一: 1.首次尝试利用"360U盘鉴定"工具来检测U盘

玩网络游戏时提示显存不足的解决方法

故障分析:一般是电脑的显存配置不支持该类游戏才会出现类似显存不足提示,还有一种可能性就是电脑的系统出现了故障导致游戏不能运行. 解决方法: 1.显存不足被其他的程序占用大量的显存,尝试关闭一些程序在来运行游戏. 2.使用一些修复或者优化软件来对系统进入优化,在尝试登陆游戏.比如360安全卫士.优化大师等 3.查看是电脑的配置不支持用户玩的网游的要求,所有建议更换新的配置. 4.最后如果用户设置时双显卡的话,建议把全局设成独立显卡,如打开天龙八步用右键 在打开一栏里选择除默认的另外一个. 5.加大

重装win7旗舰版系统后启动时提示invalid partition table的解决方法

  原因分析:一般是硬盘主引导记录中的分区表有错误,当指定了多个自举分区(只能有一个自举分区)或病毒占用了分区表的时候,就会出现这样的故障,主引导记录(MBR)位于0磁头/0柱面/1扇区,由FDISK.EXE对硬盘分区时生成,MBR包括主引导程序.分区表和结束标志55AAH三部分,共占一个扇区,主引导程序中含有检查硬盘分区表的程序代码和出错信息.出错处理等内容. 当硬盘启动时,主引导程序将检查分区表中的自举标志.若某个分区为可自举分区,则有分区标志80H,否则就为00H,而系统规定只能有一个分区

Win7系统拷贝文件时提示磁盘被保护的解决方法

在Win7系统中,有一种能为文件取到保护作用的功能,这个保护功能虽好,但有时候也会给网友们带来烦恼,比如说当你想要拷贝一些文件时,被提示说磁盘被保护,以至于无法完成操作,那么在这时候要怎么办呢!要怎么的去掉保护呢?我们一起去看看吧! 遇到这种情况相信很多人都会很郁闷吧! 解决步骤: 1."Win+R"打开运行框--输入regedit,进入注册表编辑器; 2.进入注册表编辑器后我们依次找到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlS

注册twitter推特时提示手机号码不正确的解决方法

  最近,一些网友会下载twitter推特手机版来注册使用,但是,在注册的过程中,会遇到需要手机号码验证,但是输入手机号码之后,却被提示该手机号码出错,这是怎么回事呢?如果您在注册twitter推特的时候也遇到这样的状况,一起来看看小编给大家分享的twitter推特注册方法吧! 1.首先需要twitter的iOS/Android客户端(上面提供下载),选择邮箱注册(国内邮箱收不到twitter的邮件),然后正常进行注册,到手机验证这一步,正常输入你的手机号码,然后会提示:发送短信到该手机号码出错

winXP系统中打开游戏程序时提示未知directX错误的解决方法

  原因分析: 原来出现这种情况原因并非弹窗中说的显卡驱动版本太旧,而是显卡驱动"太新".由于微软已停止维护XP系统的缘故,NVIDIA官方也不再对XP系统下的显卡驱动进行WHQL的签名认证.因此,当XP系统安装了太新的显卡驱动后,会由于显卡驱动中的文件没有数字签名从而导致DirectX功能无法正常使用. 那么知道上面的情况,解决起来也很简单了,就是安装一个较旧的显卡驱动版本. 解决方法: 1.首先我们到WinXP系统的控制面板-添加或删除程序中,找到NVIDIA显卡驱动以及所有组件;

安装SQL2008时提示删除SQL2005Express工具的解决方法_MsSql

修改注册表: HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM,将ShellSEM项重命名或删除即可.