sipdroid是一款開源的運行於Android平臺上的voip,目前支持音頻和視頻通話;android
項目拖管地址:http://code.google.com/p/sipdroid/app
下載源代碼,導入eclipse的時候會有一些小錯誤,但都比較容易更改,這些就再也不重複;eclipse
在命令行窗口下進行項目所在文件下,執行ndk-build命令(若是沒有添加ndk到系統環境變量須要先進行配置);ui
C:\Users\zy\Desktop\Android SipDroid>ndk-build Android NDK: There is no Android.mk under jni/jni Android NDK: If this is intentional please define APP_BUILD_SCRIPT to point Android NDK: to a valid NDK build script. D:/android-ndk-r9c/build/core/add-application.mk:202: *** Android NDK: Aborting. .. . Stop.
這裏會有一個路徑錯誤的問題,須要修改Application.mk文件;this
修改APP_PROJECT_PATH := $(call my-dir)爲APP_PROJECT_PATH := $(call my-dir)/..google
再次執行ndk-build命令,一樣也還有一個錯誤spa
Android NDK: jni/../jni/Android.mk:silkcommon: LOCAL_MODULE_FILENAME must not co ntain a file extension D:/android-ndk-r9c/build/core/build-static-library.mk:29: *** Android NDK: Abort ing . Stop.
這裏很明顯是編譯silkcommon的時候出錯了,在Android.mk文件中定位到silkcommon,以下:命令行
SILK := silk LOCAL_MODULE := silkcommon LOCAL_SRC_FILES := $(SILK)/src/SKP_Silk_A2NLSF.c \ $(SILK)/src/SKP_Silk_CNG.c \ ...
很明顯這裏少了一句include $(CLEAR_VARS),咱們把這一句添加到上頭;code
include $(CLEAR_VARS) SILK := silk LOCAL_MODULE := silkcommon LOCAL_SRC_FILES := $(SILK)/src/SKP_Silk_A2NLSF.c \ ...
再次執行ndk-build,便可編譯成功;視頻
這裏編譯出來的是Library工程,而不是可運行的App工程。