Android 使用NDK編譯sipdroid Library

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工程。

相關文章
相關標籤/搜索