返回
在Android Studio上迁移并编译soundtouch库
Android
2024-01-31 17:54:31
变调库soundtouch Android Demo编译
开发缘由
近期项目需求实现音频变速变调,调研后了解到开源库soundtouch,其官方提供的Android Demo为eclipse项目,使用native代码路径为相对路径。本文记录将该Android Demo迁移到Android Studio,并成功编译so文件。
实现方案
- 在soundtouch-android-demo目录下执行下列命令:
android update project -p .
- 把build.xml中的source.dir由相对路径改为绝对路径:
<source.dir>src</source.dir>
- 在res/values/AndroidManifest.xml中加入native库信息:
<application android:name=".SoundTouch>
<uses-library android:name="soundtouch"/>
</application>
- 在src目录下创建soundtouch目录:
mkdir soundtouch
- 把对应soundtouch库的so文件放到src/soundtouch目录下:
cp soundtouch-android-demo/jniLibs/armeabi/libsoundtouch.so src/soundtouch/libsoundtouch.so
cp soundtouch-android-demo/jniLibs/armeabi-v7a/libsoundtouch.so src/soundtouch/libsoundtouch.so
- 在jni目录下创建Android.mk文件:
include $(BUILD_SHARED_LIBRARY)
LOCAL_MODULE := soundtouch
LOCAL_SRC_FILES := soundtouch/libsoundtouch.so
- 在jni目录下创建Application.mk文件:
APP_ABI := armeabi-v7a armeabi
-
把项目的targetSdkVersion修改成21或以下,因为soundtouch库的ndk-build脚本默认针对android-21或以下版本构建。
-
编译
./gradlew build
注意事项
如果出现编译出错:
cannot find libandroid.so
则需要把NDK的路径加入系统环境变量中,并保证在系统的PATH中NDK路径在前,SDK路径在后。
总结
本文介绍了soundtouch库Android Demo的迁移及编译,供有需要的小伙伴参考。