Android中NDK开发java.lang.UnsatisfiedLinkError: couldn't find "xxx.so

1、报这个错误的原因是因为在module的build文件中没有将本地jni中c文件生成对应的so文件,所以就会报找不到so文件。

Android中NDK开发java.lang.UnsatisfiedLinkError: couldn't find "xxx.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方法所类的引用”,回车

Android中NDK开发java.lang.UnsatisfiedLinkError: couldn't find "xxx.so

3、一定要在自己写的C代码中(上图hello.c中)引用这个头文件(eg:   #include "com_example_ndk_test_NDK.h

4、然后重新Rebuild工程,完成后build文件夹下就会出现ndk文件夹,

Android中NDK开发java.lang.UnsatisfiedLinkError: couldn't find "xxx.so

5、重新启动相关程序

结尾:刚开始写博客,如有不对的地方,请指正!