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:: *** 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:: *** 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 使用NDK编译sipdroid Library的更多相关文章

  1. Android 使用NDK编译二进制文件并运行

    Android 使用NDK编译二进制文件并运行本文介绍如何编译可以在Android平台上运行的二进制可执行文件. 首先我们,知道,Android是基于Linux的,而在Linux上,可以执行二进制文件 ...

  2. android开发 NDK 编译和使用静态库、动态库 (转)

    在eclipse工程目录下建立一个jni的文件夹 在jni文件夹中建立Android.mk和Application.mk文件 Android.mk文件: Android提供的一种makefile文件, ...

  3. Android studio NDK 编译 "$USE_DEPRECATED_NDK=true" 异常问题解决

    我的项目是https://github.com/leixiaohua1020/simplest_ffmpeg_mobile/tree/master/simplest_ffmpeg_android_st ...

  4. android用NDK编译出so最简单的方法

    其实只要是有个jni的文件夹,再放个Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hell ...

  5. [原]如何用Android NDK编译FFmpeg

    我们知道在Ubuntu下直接编译FFmpeg是很简单的,主要是先执行./configure,接着执行make命令来编译,完了紧接着执行make install执行安装.那么如何使用Android的ND ...

  6. android NDK编译(导入).a文件和编译多个so文件(转)

    源:android NDK编译(导入).a文件和编译多个so文件 一.编译一个静态库 libstatic_android.a LOCAL_PATH := $(call my-dir) include ...

  7. 在非NDK编译条件下使用Android Log函数

    解决的需求 有些时候不能在NDK环境编译,或者使用NDK编译会颇费周折,然后又想使用Android系统自带的Log类方法,那么我们就可以使用dlopen来实现我们的目的.比如在OpenCV中添加And ...

  8. Android APP使用NDK编译后的ffmpeg库出现undefined reference to 'posix_memalign'错误

    在android程序中使用NDK编译后的ffmpeg库的时候出现了如下错误: jni/libs/libavutil.a(mem.o): in function av_malloc:libavutil/ ...

  9. Android Studio 中关于NDK编译及jni header生成的问题

    之前由于工作原因使用grails这个基于groovy的框架做项目,对groovy感觉很好. 基于groovy的gradle构建系统对我而言自然也是好的没得说. Android Studio 正式版出来 ...

随机推荐

  1. [WinAPI] API 3 [获取系统目录,并保存在文件里]

    /* 获取系统目录,并保存在文件里 [peoject->set->link->project chose->subsystem:console] */ #include< ...

  2. SharePoint Client Object Model API 介绍以及工作原理解析

    CSOM和ServerAPI 的对比 SharePoint从2010开始引入了Client Object Model的API(后文中用CSOM来代替),从名字来看,我们可以简单的看出,该API是面向客 ...

  3. 我们可以用SharePoint做什么

    前言 不知不觉作为一个SharePoint的开发人员若干年了,从SharePoint api 开始学习,到了解SharePoint的结构,逐渐一点点了解sharepoint的体系:从SharePoin ...

  4. C++ 模板与泛型编程

    <C++ Primer 4th>读书笔记 所谓泛型编程就是以独立于任何特定类型的方式编写代码.泛型编程与面向对象编程一样,都依赖于某种形式的多态性. 面向对象编程中的多态性在运行时应用于存 ...

  5. hibernate懒加载(转载)

    http://blog.csdn.net/sanjy523892105/article/details/7071139 懒加载详解 懒加载为Hibernate中比较常用的特性之一,下面我们详细来了解下 ...

  6. js随机点名

    定时器案例. <!-- Author: XiaoWen Create a file: 2016-12-08 12:27:32 Last modified: 2016-12-08 12:51:59 ...

  7. paip.mysql 全文索引查询空白解决

    paip.mysql 全文索引查询空白解决   或者  Incorrect key file for table: \'%s\'. Try to repair it    作者Attilax  艾龙, ...

  8. Leetcode 118 Pascal's Triangle 数论递推

    杨辉三角,即组合数 递推 class Solution { vector<vector<int>> v; public: Solution() { ; i < ; ++i ...

  9. Java 定时任务

    control 类 Date nowDate = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH: ...

  10. 阿里云产品介绍(二):云服务器ECS的孪生兄弟们

    上一篇介绍的云服务器ECS,是阿里云最基础的产品,也是每一个云计算厂商最基础的产品,俗称爆款.除了标准的云服务器,阿里云也不停的在推出面向特殊业务场地的云服务器,可以说是ECS的孪生兄弟们. 这一篇就 ...