Android 使用NDK编译sipdroid Library
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的更多相关文章
- Android 使用NDK编译二进制文件并运行
Android 使用NDK编译二进制文件并运行本文介绍如何编译可以在Android平台上运行的二进制可执行文件. 首先我们,知道,Android是基于Linux的,而在Linux上,可以执行二进制文件 ...
- android开发 NDK 编译和使用静态库、动态库 (转)
在eclipse工程目录下建立一个jni的文件夹 在jni文件夹中建立Android.mk和Application.mk文件 Android.mk文件: Android提供的一种makefile文件, ...
- Android studio NDK 编译 "$USE_DEPRECATED_NDK=true" 异常问题解决
我的项目是https://github.com/leixiaohua1020/simplest_ffmpeg_mobile/tree/master/simplest_ffmpeg_android_st ...
- android用NDK编译出so最简单的方法
其实只要是有个jni的文件夹,再放个Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hell ...
- [原]如何用Android NDK编译FFmpeg
我们知道在Ubuntu下直接编译FFmpeg是很简单的,主要是先执行./configure,接着执行make命令来编译,完了紧接着执行make install执行安装.那么如何使用Android的ND ...
- android NDK编译(导入).a文件和编译多个so文件(转)
源:android NDK编译(导入).a文件和编译多个so文件 一.编译一个静态库 libstatic_android.a LOCAL_PATH := $(call my-dir) include ...
- 在非NDK编译条件下使用Android Log函数
解决的需求 有些时候不能在NDK环境编译,或者使用NDK编译会颇费周折,然后又想使用Android系统自带的Log类方法,那么我们就可以使用dlopen来实现我们的目的.比如在OpenCV中添加And ...
- Android APP使用NDK编译后的ffmpeg库出现undefined reference to 'posix_memalign'错误
在android程序中使用NDK编译后的ffmpeg库的时候出现了如下错误: jni/libs/libavutil.a(mem.o): in function av_malloc:libavutil/ ...
- Android Studio 中关于NDK编译及jni header生成的问题
之前由于工作原因使用grails这个基于groovy的框架做项目,对groovy感觉很好. 基于groovy的gradle构建系统对我而言自然也是好的没得说. Android Studio 正式版出来 ...
随机推荐
- C语言宏高级用法 [总结]
1.前言 今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜.如是上网google一下,顺便总结一下,方便以后学习和运用.C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简 ...
- Spring - 初始化spring容器
2016.01.12 学习linux内核的过程中发现变相的提升了自己的工程能力.以前觉得spring这些东西很复杂麻烦.然而,学了linux内核再看这些东西,发现好简单. 学习spring首先就要学习 ...
- IMP-00038:无法转换为环境字符集句柄
参考解决方案:http://www.cnblogs.com/wangsaiming/p/4947151.html
- mobilebone.js使用笔记
mobilebone.js主要用来是网页呈现单页效果,添加类似native app的页面切换效果.原理是:当打开a链接里的页面时,不再以传统的新页面打开,而是以ajax-html的方式,将新页面的内容 ...
- .NET读取Office文件内容(word、excel、ppt)
引用命名空间 using Microsoft.Office.Core; using Word = Microsoft.Office.Interop.Word; using Excel = Micros ...
- atitit.atitit.hb many2one relate hibernate 多对一关联配置..
atitit.atitit.hb many2one relate hibernate 多对一关联配置.. 1. 多对一单向 @ManyToOne 1 1. 其中@JoinColumn 注解 2 2. ...
- Hibernate入门6.Hibernate检索方式
Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ...
- Why Apache Spark is a Crossover Hit for Data Scientists [FWD]
Spark is a compelling multi-purpose platform for use cases that span investigative, as well as opera ...
- 一个简单的JavaScript Map
用js写了一个Map,带遍历功能,请大家点评下啦. //map.js Array.prototype.remove = function(s) { for (var i = 0; i < thi ...
- Java蛇形数组的简单实现代码
上周五和朋友聊天谈到个蛇形数组的java实现办法,命题是:假设一个二维数组宽w高h,从1开始蛇形输出. int[][] numberMatric = new int[w][h]; 当时午睡过头脑袋不清 ...