我正在尝试按照源代码中提供的指南构建适用于Android的SoundTouch库:
编译
将SoundTouch库源代码编译为Android原生代码 库,打开Cygwin / bash shell,转到目录 " soundtouch /源极/ Android的LIB / JNI"并调用NDK编译器 以下命令:
$NDK/ndk-build
这将为所有受支持的Android平台构建二进制文件 SoundTouch库的arm-v5,arm-v7,X86,MIPS等,加上JNI 包装器接口如下所述。目标二进制文件将是 内置于" libs"子目录。只要所有这些.so二进制 图书馆版本包含在APK应用程序交付包中, targer Android设备可以选择正确的库版本 使用
请注意,允许Cygwin / bash找到NDK编译脚本, 您需要定义定义的NDK安装的位置 环境变量" NDK"。通过添加NDK路径,这是最简单的方法 〜/ .bash_profile文件末尾的定义,例如 如下:
NDK=/cygdrive/d/Android/android-ndk-r6
要执行此操作,我将进入SoundTouch/source/android-lib/jni
目录中的Terminal并键入以下命令:
export ANDROID_NDK=~/Android/Sdk/ndk-bundle
export NDK_ROOT=$ANDROID_NDK
export PATH=${PATH}:${ANDROID_NDK}
ndk-build
然后我收到以下错误:
[arm64-v8a] Compile++ : soundtouch <= soundtouch-jni.cpp
jni/soundtouch-jni.cpp:23:10: fatal error: '../source/SoundStretch/WavFile.h'
file not found
#include "../source/SoundStretch/WavFile.h"
^
1 error generated.
/home/daniele/Android/Sdk/ndk-bundle/build/core/build-binary.mk:499: recipe for target 'obj/local/arm64-v8a/objs/soundtouch/soundtouch-jni.o' failed
make: *** [obj/local/arm64-v8a/objs/soundtouch/soundtouch-jni.o] Error 1
如果我去那个目录,那么文件就在那里。以下是该文件的屏幕截图:&#39; s direcotry: