banner
李大仁博客

李大仁博客

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

MAC OSでAndroid版Linphone SDKおよびアプリをコンパイルする

以前、MAC OS で linphone-iphone SDK とアプリをコンパイルすることに成功しました。次は linphone-android の Android 版をコンパイルします。Android 版のドキュメントは簡単で、README.TXT が一つだけで、それからさまざまな調査があります。

linphone について簡単に説明します。Linphone はオープンソースの SIP 電話で、モバイル環境やデスクトップ環境(iOS、Android、Windows Phone 8、Linux、Windows デスクトップ、MAC OSX)や Web ブラウザで利用できます。Linphone には、ユーザーインターフェースとコアエンジンの間に分離があり、同じ機能の上にさまざまな種類のユーザーインターフェースを作成することができます。

コンパイル環境

  • MAC OS 10.10.5
  • JAVA 1.8
  • Android SDK 19.0.1
  • Android NDK 10c

以下はコンパイル手順です。600M のソースコードについて、公式では README ファイルの一部しか提供されていません。

  1. 最新バージョンの Android SDK をインストールし、platform-tools と tools が最新の状態であることを確認してください。Android 19 を基準バージョンとして使用することをお勧めしますが、公式では Android 16 をサポートしています。ここでは 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

  1. 環境変数を設定し、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;

  1. ツールが正しくインストールされているか確認するために、コードディレクトリ内の check_tools を使用してください。

./check_tools.sh

  1. 上記の確認が完了したら、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

  1. /src/org/linphone/compatibility/ApiTwentyOnePlus.java でシンボルが見つからないというエラーが発生します。これは SDK の互換性パッケージの問題です。私の対処方法は、ApiTwentyOnePlus.java を直接削除し、その後 /src/org/linphone/compatibility/Compatibility.java のコンパイルエラーを修正することです。後半のコンパイルでは問題が発生しないようです。

  2. Ant のコンパイルで Class not found javac1.8 というエラーが表示されます。インターネットで調べた結果、ant のバージョンが低いため、JDK 1.8 環境で javac1.8 が見つからないということです。開発のために、複数の ant バージョンをインストールしているため、個別に ant をインストールし、ant_home を指定する必要があります。

  3. 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

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。