Проблема компиляции библиотеки 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;
Другие вопросы по тегам