Проблема компиляции библиотеки Soundtouch
Я пытаюсь скомпилировать библиотеку Soundtouch с Android NDK. Я успешно установил Cygwin и SWIG, необходимые для библиотеки Soundtouch. Когда я пытаюсь запустить ndk-build.cmd, я получаю сообщение об ошибке
jni / soundtouch / wrapper_wrap.cpp: в функции 'void Java_com_talkingyeti_jni2_wrapperJNI_SoundTouch_1putSamples(JNIEnv*, _jclass*, jlong, _jobject*, jlong, jlong)': jni/soundtouch/ обертка: ошибка: SAMPE: обертка_объект: не была jni / soundtouch / wrapper_wrap.cpp: 553: ошибка: ожидаемое первичное выражение перед символом ')' jni / soundtouch / wrapper_wrap. эта область действия jni / soundtouch / wrapper_wrap.cpp:545: ошибка: 'arg2' не было объявлено в этой области cpp: 560: ошибка: ожидается ")" до "const" jni / soundtouch / wrapper_wrap.cpp: 560: ошибка: ожидается ")" до ";" Маркер: * [obj / local / armeabi / objs / soundtouch / wrapper_wrap.o] Ошибка 1
Эта проблема возникает со следующим блоком wrapper_wrap.cpp:
SWIGEXPORT void JNICALL Java_com_talkingyeti_jni2_wrapperJNI_SoundTouch_1putSamples(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) {
soundtouch::SoundTouch *arg1 = (soundtouch::SoundTouch *) 0 ;
SAMPLETYPE *arg2 = (SAMPLETYPE *) 0 ;
uint arg3 ;
uint *argp3 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
arg1 = *(soundtouch::SoundTouch **)&jarg1;
arg2 = *(SAMPLETYPE **)&jarg2;
argp3 = *(uint **)&jarg3;
if (!argp3) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint");
return ;
}
Пожалуйста, предложите мне все изменения, которые мне нужно внести в SAMPLETYPE, чтобы правильно скомпилировать NDK и сгенерировать SO-файл.
1 ответ
Кажется, вы пропустили заголовок. Убедитесь, что у вас есть:
#include "soundtouch/include/SoundTouch.h"
а также
using namespace soundtouch;