随着处理器制造工艺的不断进步,和Android系统的不断发展,最近出了arm64-v8a的架构,因为项目中用到了speex的第三方语音编解码的动态库,其余架构的处理器暂不用说,一切正常,惟独到arm64-v8a这里出问题了,在Android5.0 arm64位的手机上使用语音会报错,关于其余架构的.so文件编译再也不赘述,网上都有资料。废话少说,直接上步骤:android
1.下载android-ndk-r10e-windows-x86_64并解压,这个支持arm64 -v8a的编译,以前的版本都不行,我以前用了android-ndk32-r10-windows-x86_64,结果后来编译的时候报错Android NDK: NDK Application 'local' targets unknown ABI(s): arm64-v8a 因此要使用最新的。windows
2.能够直接在Eclipse配置NDK的编译环境,而没必要使用Cygwin,项目右键-->Properties-->Builder-->New-->选择Program,Main选项卡里面设置NDK的Location,Browse File System选择ndk-build.cmd的路径,Working Directory选择项目下jni文件夹路径,这里选Browse WorkSpace,如图:架构
切换到Refresh选项卡,选择以下ui
切换到Build Options选项卡,选择以下.net
最后别忘记点OK,回到Properties,把当前新建的NDK_Builder Up到最上面blog
这样,就配置了NDK的编译环境。ip
3.jni下的Application.mk文件须要修改为APP_ABI := armeabi armeabi-v7a arm64-v8a ……添加了arm64-v8av8
4.Project选择Clean或者Build Project均可以自动把jni下的源文件编译成.so文件。get
以上步骤顺利执行事后查看libs目录,下面的arm64-v8a文件夹下生成了libspeex.so文件。cmd
转载自:http://blog.csdn.net/xingliuyang/article/details/46710345