• Android 使用NDK编译sipdroid Library


    sipdroid是一款开源的运行于Android平台上的voip,目前支持音频和视频通话;

    项目拖管地址:http://code.google.com/p/sipdroid/

    下载源代码,导入eclipse的时候会有一些小错误,但都比较容易更改,这些就不再重复;

    在命令行窗口下进行项目所在文件下,执行ndk-build命令(如果没有添加ndk到系统环境变量需要先进行配置);

    C:UserszyDesktopAndroid 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工程。

  • 相关阅读:
    谈对信息增益与决策树的理解
    k近邻法
    感知机相关难点细解
    点到空间中面的距离
    统计学习方法中的标注问题
    Hoeffding不等式与泛化误差上界
    经验风险与期望风险
    先验概率与后验概率
    spring和springboot常用注解总结
    多环境下读取不同的配置文件
  • 原文地址:https://www.cnblogs.com/a284628487/p/4310325.html
Copyright © 2020-2023  润新知