Ant を使って、Scala で Android アプリを作成してみた。
とりあえず、Hello World ぽいものを実機で動かすまでは出来た。
http://d.hatena.ne.jp/pillows916/20100519 とHow to build Android application package (.apk) from the command line using the SDK tools + continuously integrated using CruiseControl. | simple blogを参考にした。
環境
- Scala 2.7.0-final
- Android SDK r08
- proguard 4.5.1
- Apache Ant 1.8.1
- Windows Vista
android_rules.xml について、参考にしたサイトより、さらに書き換えの必要があった。SDK に新しいものを使ったからだろう。
ant install とすれば、エミュや実機にアプリをインストール出来る。
- エミュへの場合、先に emulator コマンドでエミュを立ち上げる必要がある。
- 実機への場合、apk ファイルは署名を含む必要がある。
- エミュや実機が2つ以上接続されている場合(> adb devices で確認できる)、インストールは不可能。
android_rules.xml への追加・変更点
まず、adb.exe の位置が変更されたので、次の追記が必要。
<property name="android-platform-tools" value="${sdk-location}/platform-tools" /> <property name="adb" value="${android-platform-tools}/adb${exe}" />
aapt.exe に明示的に -F オプションを与えないと apk ファイルが生成されないように思うので、そのために
<property name="packaged-resource-file" value="${out-folder}/resouces.ap_" />
を追記し、
<aaptexec executable="${aapt}" command="package" manifest="AndroidManifest.xml" assets="${asset-folder}" androidjar="${android-jar}" apkfolder="./" resourcefilename="${packaged-resource-file}" resources="${resource-folder}"> </aaptexec> <apkbuilder outfolder="./" apkFilepath="${out-debug-package}" resourcefile="${packaged-resource-file}" verbose="true" debugsigning="true"> <dex path="${intermediate-dex}"/> <sourcefolder path="${source-folder}" /> <jarfolder path="${external-libs-folder}" /> <nativefolder path="${native-libs-folder}" /> </apkbuilder>
のように書き換え。debugsigning="true" は署名を付けるためのオプション。