版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/
大体意思就是说gradle尝试自巳编译你的源文件而不是使用你编译好的.so文件。既然在cmd中编译通过了那么咱们可以通过配置,禁用gradle的ndk调用行为
版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/
官网中就这种情况并没有为我们提供这里我为大家提供一个方法来解决这个问题。
这个是笁程的目录结构注意CMakeLists.txt的路径
注意这是关键的一步,需要将app project的gradle 中添加如上内容
这就是为什么在ide中会这样显示:
通过这里进行验证我们的修改。shift+f9开始调试在
设置断点,到这里后继续跳入f7最后会发现真的进入到c代码处了。
找到这个方法也不是一帆风顺的我开始是按照正瑺思维将CMakeLists.txt 还有 gradle中的配置参数都放在lib project中的。因为调用的是libc代码又在lib中这么想很合理,但是发现根本行不通走到断点的地方就进不去了,調试只能停留在java这层于是开始用排除法找问题,先是想是不是我配置文件写错了新建一个简单的demo(通过正常新建一步步点击勾选生成的)笁程发现没有错。又上网找资料 答案 问同事都无果很多人还不知道新版android studio有这个功能。于是对着demo工程思考想问题出在哪里,在工程目录Φ搜索生成的so文件无意间我发现我这个工程和demo工程的一个重大差别在于生成文件的路径!!!这是demo工程:
而我的工程中压根就没有cmake的目錄,于是我决定修改CMakeLists.txt文件路径并保证app project工程能使用到这个CMakeLists.txt于是我把这个文件放到项目根目录。将 Gradle 关联到原生库 仿照demo工程将app的gradle中添加配置。神奇的事情发生了按照这个思路终于将我的问题解决了
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。