Android中NDK开发java.lang.UnsatisfiedLinkError: couldn't find "xxx.so
1、报这个错误的原因是因为在module的build文件中没有将本地jni中c文件生成对应的so文件,所以就会报找不到so文件。
2、首先Rebuild一下工程,最好将上述build文件夹中的四个子文件都删除,然后再Rebuild,如果Rebuild后依然没有出来一个叫ndk的文件夹那么就需要检查一下jni文件中编写的C程序,亲测如果jni中不包含C头文件(.h结尾)就不会生成ndk文件夹。所以解决这个问题的关键就是生成C的头文件(生成头文件的方法网上都有,大概有三种,这里只介绍其中一种)。
在Terminal中输入如下命令
cd “当前module名称”,回车
cd src ,回车
cd main ,回车
cd java ,回车
cd javah “当前native方法所类的引用”,回车
3、一定要在自己写的C代码中(上图hello.c中)引用这个头文件(eg: #include "com_example_ndk_test_NDK.h)
4、然后重新Rebuild工程,完成后build文件夹下就会出现ndk文件夹,
5、重新启动相关程序
结尾:刚开始写博客,如有不对的地方,请指正!