banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

MAC OS编译Android版Linphone SDK和APP

之前在 MAC OS 折腾编译 iOS 版 linphone-iphone SDK 和 APP 成功,下一步继续编译 Android 版的 linphone-android。Android 版的文档更简单,一个 README.TXT 就结束,然后各种调查。

简单说明一下 linphone Linphone is an open source SIP Phone, available on mobile and desktop environments (iOS, Android, Windows Phone 8, Linux, Windows Desktop, MAC OSX) and on web browsers. Linphone has inside a separation between the user interfaces and the core engine, allowing to create various kinds of user interface on top of the same functionalities.

编译环境 MAC OS 10.10.5 JAVA 1.8 Android SDK 19.0.1 Android NDK 10c

以下是编译的方法步骤,600M 的源代码官方只提供一段 README 文件来说明。

1. 安装最新版本的 Android SDK 和保证 platform-tools and tools 是最新状态,推荐使用 Android19 作为基准版本,官方支持 Android16。 这里可能需要用到 VPN。 2. 安装 android NDK,到官方下载即可,国内可能需要用到 VPN。 3. 安装一堆编译用的工具和依赖包,大部分用 brew 即可搞定,libtool,rsync 这两位在 mac 下叫 glibtool 和 grsync。 yasm, nasm, curl, ant, rsync, autoconf, automake, aclocal, libtool, pkgconfig, bc, perl-LWP-Protocol-https, patch, vim-common 4. 下载 linphone 的源代码,代码包比较大,关联内容较多,建议 VPN 下下载

git clone git://git.linphone.org/linphone-android.git --recursive

5. 配置好环境变量,确认 JAVA ANT SDK 和 NDK 是否配置正确

# JAVA
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home;

ANT#

export ANT_HOME=~/apache-ant-1.9.6;
export PATH=${PATH}:${ANT_HOME}/bin;

Android#

export ANDROID_HOME=~/android-sdk-macosx;
export PATH=${PATH}:${ANDROID_HOME}/platform-tools;
export PATH=${PATH}:${ANDROID_HOME}/tools;

Android#

export ANDROID_NDK_HOME=~/android-ndk-r10c;
export PATH=${PATH}:${ANDROID_NDK_HOME};

#classpath
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar;

6. 确认工具是否安装完成,使用代码目录下的 check_tools 即可

./check_tools.sh

7. 以上确认完成后,即可用 make 命令或 make install 命令进行编译和安装测试了。

编译中出现的问题与解决 1. 提示找不到 libtoolize,要求安装 libtool, 原因是 MAC OS 上 libtool 和 libtoolize 这两位改成了 glibtoolize 和 glibtool。连接一下即可。rsync 如果出现问题,同样处理即可

sudo ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
sudo ln -s /usr/local/bin/grsync /usr/local/bin/rsync

2. /src/org/linphone/compatibility/ApiTwentyOnePlus.java 出现无法找到符号(symbol)错误。 原因是 SDK 中的兼容包内容问题,我的处理方法是直接删除 ApiTwentyOnePlus.java,然后后把 /src/org/linphone/compatibility/Compatibility.java 里的编译错误修改掉即可,貌似后面编译没有出问题。

3.Ant 编译提示 Class not found javac1.8,网上查询后说是因为 ant 的版本较低导致在 JDK 1.8 环境下无法找到 javac1.8 我由于开发需要,安装了多个 ant 版本,处理方法就是单独安装一套 ant 并把 ant_home 设置指向即可。

4. 提示 zipalgin not found 问题,把 tools 下的 zipalign 复杂到 build-tools\android-xx 下即可。

最后提供一段编译用的 SHELL 脚本

# JAVA
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home;

ANT#

export ANT_HOME=~/apache-ant-1.9.6;
export PATH=${PATH}:${ANT_HOME}/bin;

Android#

export ANDROID_HOME=~/android-sdk-macosx;
export PATH=${PATH}:${ANDROID_HOME}/platform-tools;
export PATH=${PATH}:${ANDROID_HOME}/tools;

Android#

export ANDROID_NDK_HOME=~/android-ndk-r10c;
export PATH=${PATH}:${ANDROID_NDK_HOME};

#classpath
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar;

check_tools#

./check_tools.sh

make#

make install

参考 http://blog.csdn.net/zhengxinwcking/article/details/37996593 http://www.eoeandroid.com/forum.php?mod=viewthread&tid=540489&\_dsign=93906cff

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.