利用Genymotion + vs + VisualGDB + ndk 进行源码调试(效率堪比真实调试)

由于之前装过 Genymotion 模拟器,昨天做了一次更新, 尼玛结果出问题了  不停的报 play.exe停止工作,网上的各种方式折腾了几个小时无效,最后把 

Oracle VM VirtualBox
Genymotion  
用360软件管理彻底卸载了,接着重启,
 
然后重新下载了一个 VirtualBox + Genymotion 的综合安装包,不负所望,在机器重启后终于可以正常进入模拟器了 
 
看下 效果还不错  ,模拟器的过程我就不详细说了 大家自行摸索一下,网上教程挺多的

 
 
下面准备开始我们的调试过程
1、我们下载一个插件
 
下载Eclipse插件
此插件也可以通过Eclipse直接安装:Help->Install New Software,然后添加下面的地址:http://plugins.genymotion.com/eclipse
注意:如果要使用此插件,您的系统必须已经安装Genymotion

 
插件过程就不详细说了 官网复制下来的有写
 
 
2、 错误信息: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
      在我们第一次调试的时候肯定会出现一个这样的错误 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
原因是因为我们的模拟器是x86架构的处理器,但是eclipse编译出来的apk 只能在arm的架构上运行,所以就会提示这个错误
不过没关系 广大网友的力量是无尽的,我们只要下载一个补丁,安装上就可以正常运行apk了(补丁出自于那里就无从考究了,反正能用就好)
 
下面的补丁地址:http://pan.baidu.com/s/1h7yPD
 
补丁安装很简单,把下载好的文件 直接拖进模拟器,会弹出一系列的提示,全部点yes,提示框完了以后就直接重启模拟器,
再次启动模拟器的时候,可能会报错,但是没关系,我们不管它,重新继续重启,一直到正常为止
 
 
3、好了,接下来就可以开始我们的调试大业了,因为我们讲的是vs调试ndk, 这里我们需要使用到一个神器VisualGDB,大家可以在网上自动搜索,
也可以在QQ群:25093009,群共享自行下载,群共享文件名:eclipse vs 联调ndk,文件里面详细介绍了如何安装配置,这里就不详细描述了
 
在调试过程中注意一个问题,so必须编译成x86的架构,如何编译x86架构的 so? 
很简单 在jni目录里面创建一个Application.mk 然后写入下面代码:APP_ABI := armeabi armeabi-v7a x86
简单吧,这样子ndk-build命令在编译的时候 就会自动编译 上面三个构架的so文件,这样子我们就可以任意框架里面调试了
 
4、接下来我们看几个截图吧,调试过程的截图
附加界面

 
apk  还没有加载so  vs里面的断点处于 空白断点状态 
 
悬浮窗口出来,so已经成功加载,看我们的vs断点里,已经可以正常使用了,并成功进入断点。
 
在这里我们调试成功了,大家是不是觉得很激动,如果觉得激动,就点个赞吧,哈哈,赶紧去测试吧,心动不如行动.





原文地址:https://www.cnblogs.com/qinsuixin/p/6e36975b4b68c5df2bb56032cebb852f.html