LoginSignup
14
14

More than 5 years have passed since last update.

CUIでのapk作成 ~ 環境設定編

Last updated at Posted at 2014-07-08

はじめに

ビルドだけするならEclipseは重すぎる、と言う理由から、
CIも視野にいれての前提となる環境に設定の調査を行いました。

設定するサーバの環境の確認

  • AWS
  • CentOS

既知の情報は上記レベルなので、下調べが必要でした。

32bitか64bitか

$uname -a

サーバは64bitでしたので、以降はすべて64bitでの設定をおこなっています。

ディスク容量の確認

$ df

容量が大きすぎるフォルダを探すときに使う

$ du | sort -nr

ライブラリ周り

こちらはSDKをインストール後にant実行時にエラーが表示され、その対応を書いたものです

$ yum list | grep libstdc++

$ yum whatprovides libstdc++.so.6

$ sudo yum install libstdc++48-4.8.2-7.87.amzn1.i686

インストールするものの準備

  • Java
  • ANT
  • SDK

Java

java6のJDKを Oracle Java Archive からダウンロードします。
http://www.oracle.com/technetwork/java/archive-139210.html

スクリーンショット 2014-07-08 13.23.06.png

ダウンロードにはメールでの送信確認を含むユーザ登録が必要でした。

スクリーンショット 2014-07-08 13.27.50.png

jdk-6u45-linux-x64.binをダウンロード
画面の Accept Licence Agreement を選択する必要があります。

ANT

こちらから、Binary Distribution をつかいました。
http://ant.apache.org/bindownload.cgi

スクリーンショット 2014-07-08 14.24.25.png

SDK

Linux32&64bit を選びました。

スクリーンショット 2014-07-07 21.43.22.png

インストール

自分のホームディレクトリにandroidというディレクトリを作成して
今回の設定に関係するところをまとめています。

Java

もとの環境には別のJavaがはいっているため、あまり干渉しないように設定をします

はいっているjavaの置き場所を確認

$ which java

サイトからダウンロードしたファイルを実行します

$ sh jdk-6u45-linux-x64.bin

update-alternativesの設定

デフォルトで設定済みのjavaのバージョンを変えたいときなどに利用します。

設定を追加

$ sudo update-alternatives --install /usr/bin/java java [ホームディレクトリ]/android/jdk1.6.0_45/bin/java 10

使いたいバージョンのjavaを設定する

sudo update-alternatives --config java

バージョンから使用しているjavaを確認

java -version

Ant

解凍

$ tar xvfz apache-ant-1.9.4-bin.tar.gz

確認

Eclipseで作成したプロジェクトを変換する場合などに
次のコマンドを使います

$ cd [プロジェクトフォルダ]の場所

$ android update project -p ./[プロジェクトフォルダ]

ant.propertiesが作成されます

$ cd [プロジェクトフォルダ]

正常に終わるかを確認します

$ ant

Android SDK

解凍

$ tar xvfz android-sdk_r23-linux.tgz

PATHの設定

ホームディレクトリにある.bash_profileを編集します。

PATHの編集はsourceで読み込むことで即反映されますが
なれていない人はあまりおすすめしません。
もとの設定が残った状態のTerminalを設定後も閉じずに
別でterminalを開いて設定の反映を確認する方がより安全です。

.bash_profileからのPATHの記載があるところ以降の抜粋

.bash_profile
 PATH=$PATH:$HOME/bin
 ANDROID_TOOLS=$HOME/android/android-sdk-linux/tools
 ANT_HOME=$HOME/android/apache-ant194
 JAVA_HOME=$HOME/android/jdk1.6.0_45
 PATH=$PATH:$ANDROID_TOOLS:$JAVA_HOME/bin:$ANT_HOME/bin

Android SDKの追加パッケージをダウンロード

EclipseのSDK Manager で管理するパッケージのダウンロードをコマンドから行います。
ディスクの空きを気にするサーバであれば、下記のコマンドは実行せずに

$ android update sdk

このコマンドのままだと全パッケージをダウンロードします。

SDK Manager同様に追加パッケージを選択

オプションを確認します

追加できるパッケージのリストを表示

$ android list sdk

Terminalへの表示は次のような感じになります。

(略)
Packages available for installation or update: 61
   1- Android SDK Tools, revision 23.0.2
   2- Android SDK Platform-tools, revision 20
   3- Android SDK Build-tools, revision 20
   4- Documentation for Android 'L' Preview SDK, revision 1
   5- SDK Platform Android 4.4W, API 20, revision 1
   6- SDK Platform Android L Preview, revision 1
   7- SDK Platform Android 4.4.2, API 19, revision 3
   8- SDK Platform Android 4.3, API 18, revision 2
   9- SDK Platform Android 4.2.2, API 17, revision 2
  10- SDK Platform Android 4.1.2, API 16, revision 4
  11- SDK Platform Android 4.0.3, API 15, revision 3
  12- SDK Platform Android 4.0, API 14, revision 3
  13- SDK Platform Android 3.2, API 13, revision 1
  14- SDK Platform Android 3.1, API 12, revision 3
  15- SDK Platform Android 3.0, API 11, revision 2
  16- SDK Platform Android 2.3.3, API 10, revision 2
  17- SDK Platform Android 2.2, API 8, revision 3
(略)

表示された中から使うものをあげると

$ android update sdk -u -t 1,2,3,7,8,9,10,11,12,16

オプションについては --help をつけると確認できます。

$ android --help update sdk

ダウンロードしてローカルにはいったパッケージの内容を確認します

$ android list target

ハマりどころ(参考までに・・・)

設定によるもの

ant debugでエラー

android/android-sdk-linux/build-tools/20.0.0/aapt:error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

64bit環境なので、なんで32bit?なのですが足さないと進まなかったので追加しました。

$ rpm -ql libstdc++ | cat -n

$ yum list | grep libstdc++

$ yum whatprovides libstdc++.so.6

$ sudo yum install libstdc++

$ sudo yum install libstdc++48-4.8.2-7.87.amzn1.i686

ここのインストールはインターネットの情報を見ながらで判断したものの
理解できていないので気持ちが悪いところです。

注意不足

ディスクを使い切る

もとから容量がない状態で android update sdk を実行してディスクフル

PATHの設定ミスでPATHからviが外れる

別のTerminalを開いていたのでwhichしたりで拾いましたが・・・

   

参考URL

duコマンド

JDKのインストール

update-alternativesの使い方

libstdc++.so.6まわり

http://d.hatena.ne.jp/language_and_engineering/20130309/Linux64BitAndroidDevelopmentEnvironment
http://forums.tripwireinteractive.com/showthread.php?t=81822

さいごに

サーバは他のサービス、設定に影響しない設定を意識したいので

  • 実行するユーザをわける:ビルド用に別ユーザを作成して環境変数などは.bash_profileなどにまとめる
  • バージョンの異なるコマンドはupdate-alternativesなどで切り替える

などで進めたいです。
それでもけっこう大雑把に設定している感が残ってしまいました。
後ほど追記すると思います。

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14