Eclipseなし ant を利用してコマンドラインから Android の apk を作成



Androidを開発するにもEclipseが重たく困っている方向けです。Androidエミュレータを起動することはできませんが、 ant を利用することで android 開発を行うことが可能です。

Antとは、Apacheプロジェクトが開発・公開している、Javaプログラムのビルドツールの名称です。Apache Antは、GNU MakeのJava版といった位置づけです。

スポンサードリンク

環境設定

JDKのダウンロード&インストール

C:\Program Files\Java\jdk1.7.0

android SDKをダウンロード&インストール

installer_r15-windows.exe をダウンロード(推奨)。

installer_r15-windows.exe を実行してインストール

インストール先は C:ae\android-sdk (デフォルトのインストール先だと次のSDK Managerが動作する際に、書き込み権限がなくてエラーになってしまうため。)

最後に「Start SDK Manager」にチェックが入っている状態でFinish

※ SDK Manager が起動してくる。しばらく待っていると、インストールするパッケージ選択画面になるので、必要なものを入れます。

※ proxyがある環境では一旦処理を中断して、SDK managerを呼ぶ Tools -> Option -> SettingsでProxyの設定してから起動しなおすと上記と同様に パッケージ選択画面が表示されます。

Android 4.0, 3.2, 3.1 をインストール

[Install]を選択

adbをコマンドプロンプトから実行できるように以下2つにPATHを通す

Path に C:\ae\android-sdk\platform-tools;C:\ae\android-sdk\tools を追加

動作確認

$ adb
$ android -h

とコマンドプロンプトで実行して、それぞれhelpが表示されればOK。

ant をダウンロード

C:\ae\apache-ant-1.8.2\bin
C:\ae\apache-ant-1.8.2\bin;C:\ae\android-sdk\platform-tools;C:\ae\android-sdk\tools;

動作確認

$ ant -version
Apache Ant(TM) version 1.8.2 compiled on December 20 2010

とコマンドプロンプトで実行して、バージョンが表示されればOK。

android のプロジェクト作成

$ cd C:\ae
$ android create project --target android-12 --name HelloWorld --activity HelloWorldMainActivity --path HelloWorld --package org.sample.HelloWorld

※ プロジェクト作成コマンドの概要。詳細は Help を参照。

$ android create project

projectのビルド

$ cd C:\ae\HelloWorld
$ ant debug

※ プロジェクトのターゲットの詳細は以下のコマンドで調べることができます。

$ ant help

実機へ転送

$ set ADBHOST=
$ adb kill-server
$ adb start-server
$ adb devices
$ adb install bin\HelloWorld-debug.apk

Tips

eclipse で作られたプロジェクト ant でビルドできるようにするには、『android update project』コマンドを使います。

$ android update project --target android-12 --path "C:\ae\(フォルダ名)"

スクリンショット

「ddms」と叩くと、アプリケーションが立ち上がります。

Nameでemulatorを選択
DeviceでScreenCaptureを選択します

スポンサードリンク

エラー

「R.java」を削除

- compile:
[javac] C:\ae\android-sdk\tools\ant\build.xml:600: warning: 'includeantrunti
me' was not set, defaulting to build.sysclasspath=last; set to false for repeata
ble builds
[javac] Compiling 3 source files to C:\ae\Activity Lifecycle\bin\classes
[javac] C:\ae\Activity Lifecycle\gen\com\example\android\lifecycle\R.java:10
: エラー: クラスcom.example.android.lifecycle.Rが重複しています
[javac] public final class R {
[javac]  ^
[javac] エラー1個

解決方法

古いADTではR.javaは開発者のソースコードと同じフォルダに生成されていましたが、新しいADTでは、「gen」という別のフォルダに作成されるようになりました。

自動生成されたgenフォルダのソースコードが元からある R.java と衝突してコンパイルエラーになっています。元からあるR.javaは削除してください。

スポンサードリンク