cSipSimple应用程序错误: - 'SL_ANDROID_STREAM_VOICE'未声明(首次在此函数中使用)

时间:2012-08-28 11:45:14

标签: linux android-ndk pjsip

我正在尝试在linux上运行cSipSimple应用程序。要构建它我使用链接http://code.google.com/p/csipsimple/wiki/HowToBuild。首先我安装了所有包。然后ndk和sdk已经安装在我的linux机器上了。所以我只在.bashrc中设置以下路径

  

“导出ANDROID_NDK = / home / nishant / JAVA / android-ndk-r6m-linux / export   ANDROID_SDK = / home / nishant / JAVA / android-sdk-linux_86 / export   PATH = $ PATH:$ ANDROID_SDK /工具:$ ANDROID_SDK /平台的工具:$ ANDROID_NDK“

现在当我运行命令make时,我收到以下错误: -

  

/家庭/ NISHANT / CSipSimple / JNI // PJSIP / android_toolchain / pjmedia /../../源/ pjmedia //../../ android_sources / pjmedia / SRC // pjmedia-AUDIODEV / opensl_dev.c :   在函数'opensl_create_stream'中:   /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:532:   错误:'SL_ANDROID_STREAM_VOICE'未声明(首次使用此处   功能)   /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:532:   错误:(每个未声明的标识符仅报告一次   /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:532:   错误:对于它出现的每个函数。)   /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:557:   错误:'SL_ANDROID_KEY_STREAM_TYPE'未声明(首次使用此处   功能)   /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:654:   错误:'SL_ANDROID_RECORDING_PRESET_GENERIC'未声明(首次使用于   这个功能)   /home/nishant/CSipSimple/jni//pjsip/android_toolchain/pjmedia/../../sources/pjmedia//../../android_sources/pjmedia/src//pjmedia-audiodev/opensl_dev.c:669:   错误:'SL_ANDROID_KEY_RECORDING_PRESET'未声明(首次使用此处   function)make [1]: *

     

[/家/ NISHANT / CSipSimple / OBJ /本地/ armeabi / OBJ文件/ pj_opensl_dev /../../ android_sources / pjmedia / SRC // pjmedia-audiode

宏“SL_ANDROID_STREAM_VOICE”和其他宏,在文件“OpenSLES_AndroidConfiguration.h”中定义,位于ndk中。我没有得到它,我正在给ndk路径,但仍然为什么它无法追踪它。

我是否遗漏了为NDK设置路径的内容?

请帮忙

由于

1 个答案:

答案 0 :(得分:2)

我在ndk源代码中跟踪版本android-ndk-r8d,文件平台/ android-9 / arch-arm / usr / include / SLES / OpenSLES_AndroidConfiguration.h:

第20行:

#ifdef __cplusplus
extern "C" {

// some source code

}
#endif

我认为,最好这样定义:

#ifdef __cplusplus
extern "C" {
#endif

// some source code

#ifdef __cplusplus
}
#endif

我将平台/ android-9 / arch-arm / usr / include / SLES / OpenSLES_AndroidConfiguration.h中的所有定义移动到pjmedia / src // pjmedia-audiodev / opensl_dev.c,它运行正常。但这不是一个好的解决方案。