sipdroid是一款開源的運行於Android平台上的voip,目前支持音頻和視頻通話;
項目拖管地址:http://code.google.com/p/sipdroid/
下載源代碼,導入eclipse的時候會有一些小錯誤,但都比較容易更改,這些就不再重復;
在命令行窗口下進行項目所在文件下,執行ndk-build命令(如果沒有添加ndk到系統環境變量需要先進行配置);
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文件;
修改APP_PROJECT_PATH := $(call my-dir)為APP_PROJECT_PATH := $(call my-dir)/..
再次執行ndk-build命令,同樣也還有一個錯誤
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),我們把這一句添加到上頭;
include $(CLEAR_VARS) SILK := silk LOCAL_MODULE := silkcommon LOCAL_SRC_FILES := $(SILK)/src/SKP_Silk_A2NLSF.c \ ...
再次執行ndk-build,即可編譯成功;
這裡編譯出來的是Library工程,而不是可運行的App工程。
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11