使用NDK编译.so库的好处在于,不需要写复杂的makefile,不需要配复杂的平台相关参数(我之前的错误可能是出在makefile中的一些平台相关参数没配好),因为google已经帮我们做好了。
我在这里给大家分享一下使用NDK编译将静态库.a和.c/.cpp编译成x86/.so动态库的方法:
1.找到工程jni,在jni文件夹中找到Android.mk和Application.mk文件
Android.mk文件:
Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。详见附件中的Android.mk。
Application.mk文件:
定义了项目的一些细节,比如APP_ABI := x86(编译X86平台库)、APP_PLATFORM := android-9(使用android-9以上的平台库)。
2.用cd命令移至jni目录,运行你的NDK目录/android-ndk-r7b/ndk-build命令,这时命令行中可能会出现编译错误,比如头文件找不到,函数找不到等等,细心找找就能改掉。
3.编译成功后,在工程目录下libs/x86中就会生成你想要的.so库。