2013-09-13 3 views
0

Я пытаюсь скомпилировать библиотеку Soundtouch с Android NDK. Я успешно установил Cygwin и SWIG для библиотеки Soundtouch. Когда я пытаюсь запустить НДК-build.cmd, я получаю сообщение об ошибкеОшибка сборки библиотеки Soundtouch

jni/soundtouch/wrapper_wrap.cpp: In function 'void Java_com_talkingyeti_jni2_wrapperJNI_SoundTouch_1putSamples(JNIEnv*, _jclass*, jlong, _jobject*, jlong, jlong)': jni/soundtouch/wrapper_wrap.cpp:545: error: 'SAMPLETYPE' was not declared in this scope jni/soundtouch/wrapper_wrap.cpp:545: error: 'arg2' was not declared in this scope jni/soundtouch/wrapper_wrap.cpp:553: error: expected primary-expression before ')' token jni/soundtouch/wrapper_wrap.cpp:560: error: expected ')' before 'const' jni/soundtouch/wrapper_wrap.cpp:560: error: expected ')' before ';' token make: * [obj/local/armeabi/objs/soundtouch/wrapper_wrap.o] Error 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; 
+0

у вас интегрированы SoundTouch библиотеку в своих приложениях? –

+0

Да, в Android-приложении, которое должно изменять звуковые темпы –

Смежные вопросы