手把手教你如何编译Doubango for Android

背景

手上的Android项目有音视频通话功能,底层依赖doubango的libWRAP.so,将项目升级到targetSdkVersion大于23以后,编译时libWRAP.so出现text relocations错误。几经搜索,没有找到解决方案,在doubango的issue下发现,最新版本已经解决掉该问题,重新编译即可。
https://github.com/DoubangoTelecom/doubango/issues/486

准备工作

1.编译环境:Ubuntu16.04.7 (可以通过VM虚拟机安装)

可以从以下地址选择对应版本下载镜像:
http://mirrors.aliyun.com/ubuntu-releases/16.04.7/

2.doubango源码

下载地址:https://github.com/DoubangoTelecom/doubango

如果忍受不了github的下载速度,gitee上有对应的代码,下载地址如下:
https://gitee.com/OtherCopy/doubango

3.android-ndk-r9c和android-ndk-r10e

下载地址 http://developer.android.com/intl/ja/ndk/downloads/index.html(需翻墙)

从上面地址下载对应版本,r9c和r10e都需要,我放在了百度网盘,有需要的自取:
android-ndk-r9c-linux-x86.tar.bz2
链接:https://pan.baidu.com/s/1s2Zw8DzbgdOqnspjnHbKYA 提取码:4h6d
android-ndk-r10e-linux-x86_64.zip
链接:https://pan.baidu.com/s/1Pr40ZdhdrAEs-fUbSvNdYA 提取码:ruik

4.编译环境设置:

设置root密码 sudo passwd root

切换root用户 su root

更新/etc/apt/sources.list(推荐清华源https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/),更新后记得执行apt-get update

安装libtool apt-get install libtool libtool-bin

安装autoconf(automake) apt-get install autoconf

解决arm-linux-androideabi-gcc not found问题 apt-get install lsb-core (虚拟机安装的ubuntu存在此问题,非虚拟机未测试,安装完最好重启下终端)

编译

上面都准备好后,将r9c和r10e解压到doubango所在目录,按照下面步骤执行编译即可。

1.设置$NDK

export NDK=/home/android-ndk-r10e

2.生成configure文件

cd /home/doubango
./autogen.sh

3.build代码

这一步有两种方法,自动编译和手动编译,推荐下面命令
./android_build.sh commercial
耐心等待编译完成即可,编译后的libWRAP.so所在目录为doubango/android-projects/output/commercial

终于不用再忍受恼人的text relocations错误了,targetSdkVersion可以升级到23及以上了。

成果我也放在了百度网盘,有需要的自取:
链接:https://pan.baidu.com/s/1gXCn7-419mQPLQnizW1B8w 提取码:verv

最后,附上参考链接:
https://github.com/DoubangoTelecom/imsdroid/blob/master/Building_Doubango.md

你可能感兴趣的:(手把手教你如何编译Doubango for Android)