CUIのみでAndroidの開発環境を作る
何の役に立つのか疑問ですが、一貫した情報が無くハマりポイントが多かったので書いときます。
環境はさくらのVPS上に作りました。正真正銘のCUIです。
http://vps.sakura.ad.jp/
最小構成でインストールしたCentOSに、カーネルは2.6.18-194.8.1.el5 x86_64です。古い・・・
Android SDK
Linux用のAndroid SDKをダウンロードしてきます。
http://developer.android.com/sdk/index.html
適当なディレクトリに展開。
ここでダウンロードしたAndroid SDKはtoolsだけで、platformsやadd-onsなどの開発に必要なコンポーネントを下記ドキュメントを参考に整えていくのですが、これがGUIが前提になっているので厄介でした。
http://developer.android.com/sdk/adding-components.html
コマンドラインから./tools/androidを起動しても、GUIを立ち上げようとするので当然エラーになります。
# tools/android Starting Android SDK and AVD Manager No command line parameters provided, launching UI. See 'android --help' for operations from the command line. Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed] at org.eclipse.swt.SWT.error(Unknown Source) at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source) at org.eclipse.swt.widgets.Display.create(Unknown Source) at org.eclipse.swt.graphics.Device.<init>(Unknown Source) at org.eclipse.swt.widgets.Display.<init>(Unknown Source) at org.eclipse.swt.widgets.Display.<init>(Unknown Source) at org.eclipse.swt.widgets.Display.getDefault(Unknown Source) at org.eclipse.swt.widgets.Shell.<init>(Unknown Source) at org.eclipse.swt.widgets.Shell.<init>(Unknown Source) at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.createContents(UpdaterWindowImpl.java:122) at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.open(UpdaterWindowImpl.java:102) at com.android.sdkuilib.repository.UpdaterWindow.open(UpdaterWindow.java:113) at com.android.sdkmanager.Main.showMainWindow(Main.java:307) at com.android.sdkmanager.Main.doAction(Main.java:275) at com.android.sdkmanager.Main.run(Main.java:98) at com.android.sdkmanager.Main.main(Main.java:87)
ググるとVNCを使ってインストールするとかの情報は見つかりましたが、CUIだけでも可能です。help見てると下のオプションを見つけたので、こいつをつけて起動します。他にも色々あるので、コマンドにhelp付けて確認してみてください。
-u --no-ui Update from command-line, without any UI
./tools/android update sdk -t platform -u *2011/01/26追記:SDK2.3以上の場合、構造が変わってるので下のコマンドで。 ./tools/android update sdk -u
実行するとplatformsの下に色々ダウンロードされていきます。
$ ls platforms/ android-3 android-4 android-7 android-8
これでとりあえずの開発環境は整いました。次はプロジェクトを作成してコンパイルまでしてみます。
プロジェクト作成
詳細は省略・・・
$ ./android create project -t 4 -p /home/matatabi/test -k "com.example.test" -a HelloWorld
ビルド
$ cd /home/matatabi/test $ ls AndroidManifest.xml bin build.properties build.xml default.properties gen libs local.properties res src
build.xmlまで作成してくれてるのでantでビルドするだけですが、CentOSのパッケージに罠がありました。「yum install ant」でインストールしたantを使うとこんなエラーが出ます。
BUILD FAILED java.lang.NoSuchMethodError: org.apache.tools.ant.types.FileSet.iterator()Ljava/util/Iterator;
CentOSのantのバージョンは1.6.5でした。古い・・・ソース確認しましたが、1.6.5のantにはFileSet.iterator()が無いのでエラーになったみたいです。
多分1.7以上が必要です。最新版をダウンロードしてきましょう。
http://ant.apache.org/bindownload.cgi
最新版のantでビルドします。
$ ant debug