sipdroid的编译以及导入Eclipse环境

来源:互联网 发布:保健品电话数据资源 编辑:程序博客网 时间:2024/06/06 07:35

sipdroid的编译以及导入Eclipse环境



sipdroid是一款Android平台上开源的voip,当前版本已经更新到3.0了,支持视频通话。sipdroid的源码和apk可在该项目的主页下载到。

一  sipdroid项目官方地址


项目主页:

http://code.google.com/p/sipdroid/

代码地址:

svn checkout http://sipdroid.googlecode.com/svn/trunk/sipdroid-read-only


二  sipdroid导入Eclipse

源码下载下来之后,如果直接将sipdroid导入eclipse环境中,工程会直接报错。看console窗口中的错误提示,可发现工程缺少project.properties,也因此导致工程里的java文件一片红(都是错误)。

解决办法有两个.

方法一从其它工程拷贝一个project.properties过来,根据实际情况修改下project.properties中的target变量的设置,这个是API版本号。然后刷新下工程。

方法二:通过command line参照工程目录下的BUILT.txt文件对工程进行update。
     如:android update project -p . -t 2(这里 -p指的是 --path -t指的是 --target)

    具体执行步骤为:在命令行模式中进入sipdroid上级目录,执行以下命令:

android update project -p sipdroid_build -t android-15

     之后再导入Eclipse环境即可。


三 sipdroid编译

接下来使用NDK编译sipdroid的jni,无论是Windows或者Ubuntu,需要下载好Android NDK,并配置好环境变量。若是Window环境还需要下载安装Cygwin或者MingGW+MSYS仿Unix编译环境。需要注意的是同时安装了Cygwin和MingGw+MSYS环境的系统,需要保证只让一个仿Unix环境起作用,否则有可能出现不必要的编译错误。

jni编译环境搭配完整后,可切换到sipdroid工程的jni目录下执行:ndk-build(ndk-build的路径已经添加到系统路径了,如果没有添加,需要指定完整路径)

备注:我的系统是Windows XP,NDK版本是android-ndk-r9c-windows-x86,使用的仿Unix环境是Cygwin(2013年12月20日从官网下载安装)。

      

在ndk-build过程中可能出现的错误及解决办法:

错误一:

sipdroid_build/jni/speex_jni.cpp:26:25: fatal error: speex/speex.h: No such file or directorycompilation terminated./cygdrive/f/android-ndk-r9c-windows-x86/android-ndk-r9c/build/core/build-binary.mk:388: recipe for target '/cygdrive/f/videoapp/sipdroid_build/obj/local/armeabi/objs/speex_jni/speex_jni.o' failedmake: *** [/cygdrive/f/videoapp/sipdroid_build/obj/local/armeabi/objs/speex_jni/speex_jni.o] Error 1
解决办法:把jni文件夹中的speex-1.2rc1/include/speex文件夹拷贝到jni目录下

      错误二:

Android NDK: WARNING: APP_PLATFORM android-15 is larger than android:minSdkVersion 5 in /cygdrive/f/videoapp/sipdroid_build/AndroidManifest.xmlAndroid NDK: /cygdrive/f/videoapp/sipdroid_build/jni/Android.mk:silkcommon: LOCAL_MODULE_FILENAME must not contain a file extension/cygdrive/f/android-ndk-r9c-windows-x86/android-ndk-r9c/build/core/build-static-library.mk:29: *** Android NDK: Aborting    。 停止。

解决办法:打开jni目录下的Android.mk文件,在如下代码位置:

SILK     := silkLOCAL_MODULE    := silkcommonLOCAL_SRC_FILES :=  $(SILK)/src/SKP_Silk_A2NLSF.c \$(SILK)/src/SKP_Silk_CNG.c \$(SILK)/src/SKP_Silk_HP_variable_cutoff_FIX.c \$(SILK)/src/SKP_Silk_LBRR_reset.c \$(SILK)/src/SKP_Silk_LPC_inv_pred_gain.c \$(SILK)/src/SKP_Silk_LPC_stabilize.c \$(SILK)/src/SKP_Silk_LPC_synthesis_filter.c \$(SILK)/src/SKP_Silk_LPC_synthesis_order16.c \

添加 include $(CLEAR_VARS)

修改后代码如下:
include $(CLEAR_VARS)SILK     := silkLOCAL_MODULE    := silkcommonLOCAL_SRC_FILES :=  $(SILK)/src/SKP_Silk_A2NLSF.c \$(SILK)/src/SKP_Silk_CNG.c \$(SILK)/src/SKP_Silk_HP_variable_cutoff_FIX.c \$(SILK)/src/SKP_Silk_LBRR_reset.c \$(SILK)/src/SKP_Silk_LPC_inv_pred_gain.c \$(SILK)/src/SKP_Silk_LPC_stabilize.c \$(SILK)/src/SKP_Silk_LPC_synthesis_filter.c \$(SILK)/src/SKP_Silk_LPC_synthesis_order16.c \$(SILK)/src/SKP_Silk_LP_variable_cutoff.c \

---------------------------
编译过程中我就遇到过这两个错误,网上还看到有人遇到的一个错误,但是我没有遇到,如下:
Android NDK: There is no Android.mk under /home/helei/workspace/raydroid/jni/jni    Android NDK: If this is intentional  please define APP_BUILD_SCRIPT to point   Android NDK: to a valid NDK build script.    /home/helei/android_toolchain/android-ndk-r7b/build/core/add-application.mk:143: *** Android NDK: Aborting...    .  Stop.
解决办法:
修改jni目录下的Application.mk文件中:
1、解决办法来源:http://blog.csdn.net/harry_helei/article/details/7400338
  APP_PROJECT_PATH := $(call my-dir)这一行,
将其修改为:APP_PROJECT_PATH := $(call my-dir)/..  
    2、解决办法来源:http://hi.baidu.com/justtmiss/item/d5d16b354c725b25b2c0c5a6
        修改Application.mk
#APP_PROJECT_PATH := $(call my-dir)LOCAL_PATH := $(call my-dir)


0 0
原创粉丝点击