在上篇部落格說了一下 ant 這個工具。
本篇部落格會繼續使用 ant 編譯 android 開源項目:sipdroid
1. 源碼下載
下載源碼需要 svn,自己下載 svn,配置。
項目介紹:http://code.google.com/p/sipdroid/
源碼下載:http://code.google.com/p/sipdroid/source/checkout
2. 編譯
我下載之後,項目源碼位於 /sipdroid-read-only
修改 sipdroid-read-only 為 sipdroid
cd /home/mark/workspace/mProandroid update project -p sipdroid/ -t android-8
然後,這樣做:
cd sipdroidant debug
如果看到下面資訊,那麼恭喜你,編譯通過。
編譯成功之後,在sipdroid/bin目錄下會有apk檔案產生。
3. 匯入 eclipse
開啟 eclipse,匯入該工程。
ok,開始研究吧!
4. 編譯庫檔案
使用 NDK 編譯該 jni 下面的檔案,報錯:
Android NDK: There is no Android.mk under /home/mark/workspace/mPro/sipdroid/jni/jni Android NDK: If this is intentional please define APP_BUILD_SCRIPT to point Android NDK: to a valid NDK build script. /home/mark/android/android-ndk-r5c/build/core/add-application.mk:126: *** Android NDK: Aborting... . Stop.
然後,修改一下Application.mk檔案,再編譯,報錯:
Android NDK: /home/mark/workspace/mPro/sipdroid/jni/../jni/Android.mk:silkcommon: LOCAL_MODULE_FILENAME must not contain a file extension /home/mark/android/android-ndk-r5c/build/core/build-static-library.mk:29: *** Android NDK: Aborting . Stop.
解決問題:
在源碼的 jni 目錄下面 找到 Android.mk 檔案,大約在第 90 行有下面內容:
SILK := silkLOCAL_MODULE := silkcommonLOCAL_SRC_FILES := $(SILK)/src/SKP_Silk_A2NLSF.c \
改為:
include $(CLEAR_VARS)SILK := silkLOCAL_MODULE := silkcommonLOCAL_SRC_FILES := $(SILK)/src/SKP_Silk_A2NLSF.c \
再次編譯,即可!