Android Studio下编译lame

在项目中要实装lame的开源库实现录音转码mp3的功能。

期间遇到了诸多问题,在win和ubuntu下来回切。Android Studio本身的ndk功能还处于试验状态(2.1).

最终成功解决。


1.首先下载lame的源码。需要自备梯子。

http://lame.sourceforge.net/download.php

http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz

下载好之后解压。将libmp3lame/ 目录拷贝到项目下的jni目录下,同时将将 lame-x.xx.x/include/ 目录下的 lame.h 也复制到 jni/libmp3lame/中


2.在jni文件夹下创建Application.mk和Android.mk文件

这里不赘述,重点在于如果是x86_64的话需要在Application.mk中加上

APP_CFLAGS += -DSTDC_HEADERS
否则会有错误
undefined reference to `bcopy'
collect2: error: ld returned 1 exit status
 
  
 
  
3.修改源代码
fft.c中去掉#include “vector/lame_intrin.h”。这个是用Intel CPU的特性进行优化, ARM上用不到。
set_get.h中将#include改成#include “lame.h”。
utils.h中将extern ieee754_float32_t fast_log2(ieee754_float32_t x);用extern float fast_log2(float x);替换。
 
  
4.build
这个时候在终端里切换到jni目录,执行ndk-build就可以了。前提是将ndk-build的目录添加到了系统环境变量中

你可能感兴趣的:(Android Studio下编译lame)