Ant+AndroidでHelloWorld実機版

Android Phoneの実機(Nexus S)を借りたので。

今回もメモメモ。

Android SDK+Emacs+AntでHelloWorldまでの手順メモまではできているという前提ですすめる。

以前は仮想デバイスだったが今回は実機で動かしてみる。

あと.bashrcでパスとかも追加した。

ANT_HOME=/cygdrive/c/prog/apache-ant-1.8.2
JAVA_HOME=/cygdrive/c/PROGRA~1/Java/jdk1.5.0_19

PATH="$PATH":/cygdrive/c/prog/Meadow/bin
PATH="$PATH":/cygdrive/c/PROGRA~1/Java/jdk1.5.0_19/bin
PATH="$PATH":/cygdrive/c/prog/android-sdk-windows/tools
PATH="$PATH":/cygdrive/c/prog/android-sdk-windows/platform-tools

プロジェクトの準備

プロジェクトの作成

とりあえず思い出しながら新しいHelloWorldを作る。

$ ./android create project --targer 1 --name HelloWorld1 --path HelloWorld --package com.android --activity HelloWorld1

apkをつくる。

HelloWorld1.apkができる。

ant release

鍵の作成

公開するなら署名をつけなきゃいけないらしい。

まずJDKのkeytoolというものを使って鍵をつくる。

$ keytool -genkey -v -keystore android.keystore -alias androidkey -keyalg RSA -validity 10000

名前とかパスワードとか住所とか所属とか訊かれる。

アプリケーションの署名

作った鍵で署名する。

$ jarsigner -verbose -keystore android.keystore bin/HelloWorld1.apk androidkey

署名されたか確認

$ jarsigner -verbose bin/HelloWorld1.apk

build.propaties

にさっきの署名の内容とかを記述。

key.store=ファイル名
key.store.password=パスワード
key.alias=エイリアス
key.alias.password=パスワード

build.xml

をちょっと便利に。

<project ...>
  ...
  <property name="out-signed-package" value="${out.dir}/${ant.project.name}.apk"/>
  <target name="deploy" depends="compile, release">
    <signjar jar="${out.dir}/${ant.project.name}-unsigned.apk"
             signedjar="${out-signed-package}"
             alias="${key.alias}" storepass="${key.store.password}"
	  keypass="${key.alias.password}" keystore="${key.store}" />
    <exec executable="${adb}" failonerror="true">
       <arg value="-d" />
       <arg value="install" />
       <arg value="-r" />
       <arg path="${out-signed-package}" />
    </exec>
  </target>
</project>

あとは実機にインストール

さっき書いたdeployでcompile, release, installまで一撃でやってくれる。

$ ant deploy

Error: device not found

ドライバがうまく入ってなかったらしく見つけてくれない。

4時間くらい悩んだが、How to Install Nexus S Windows USB Drivers!にあるドライバと手順を参考にしたところ、ようやく動いた。

  1. おとした実行ファイルでドライバをインストール。
  2. 終わったらデバイスマネージャに!マークのついたNexus Sがでるのでダブルクリックして更新を選択。
  3. ローカルから探す(的なの)を選んで、全てのデバイスを出した後Samsung Electoronics Co.,LTDからADB Deviceにマークして進む。
  4. そうしたらデバイスマネージャにADB Interfaceってのができてインストール成功。

借り物なのでよく分からないが本当はドライバがCDとかでついてくるのだろうか。

One Trackback

  1. [...] Ant+AndroidでHelloWorld実機版の設定でAndroidアプリケーションを開発していたのだが、Java 7にしたら [...]

Post a Comment

Your email is never shared.

引く

PageTop