Androidでアラームアプリを作る(1)

Androidでアラームアプリを作ろうと思う。

ベースにするのは、Android標準のアラームアプリ。以前はAlarmClockという名前だったようだが、最近DeskClockに変わったようだ。

以下のページで、実機にダウンロードして動作を確認できる。
Labs: DeskClock CurveFish

ちなみに、アプリアイコンのラベルは日本語では「時計」になる。普通すぎてわかりにくいので、最初はアプリがインストールされていないかと思った。

Androidの開発環境構築は、『初めてのAndroid 第3版』を参考にした。absj31さんの記事「Android開発環境構築メモ」でもだいたい同じ手順。OSはWindows 7eclipseのバージョンは3.5。

それでは、いってみよう。

1.ソースコードのダウンロード

cd c:\workspace
git clone git://android.git.kernel.org/platform/packages/apps/DeskClock.git

DeskClockフォルダに、ソースコードがダウンロードされる。

2.eclipseのプロジェクトにする

DeskClockプロジェクトをeclipseで開けるようにする。

適当なAndroidのプロジェクトを新規作成して、自動生成された以下のファイルをC:\workspace\DeskClockにコピーする。

  • .project(プロジェクト名を表すname要素は、DeskClockに変更する。)
  • .classpath
  • default.properties
  • proguard.cfg

そして、eclipseで既存のワークスペースをインポート(File > Import... > General > Existing Projects into Workspace)して、DeskClockプロジェクトを開く。

3.ビルド

eclipseでビルドを実行(Build > Build Project)すると、エラーが4つ出た。

(1) Error generating final archive: java.io.FileNotFoundException: C:\workspace\DeskClock\bin\resources.ap_ does not exist DeskClock Unknown Android Packaging Problem
(2) Project 'DeskClock' is missing required source folder: 'gen' DeskClock Build path Build Path Problem
(3) The project cannot be built until build path errors are resolved DeskClock Unknown Java Problem
(4) Unparsed aapt error(s)! Check the console for output. DeskClock line 1 Android ADT Problem

genという名前のフォルダを手動で作成すれば、(2)-(4)のエラーは消える。

(1)は、resources.ap_というファイルがないことが指摘されている。

"resources.ap_"で検索してみると、以下のページがヒット。
resources.ap_ does not exist when compile my android project

"Project > Clean"で解決するとのことなので試したら、あっさりエラーが出なくなった。

4.実行

"Window > Android SDK and AVD Manager"でAVDを起動してから、"DeskClockプロジェクトを右クリック > Debug As > Android Application"でデバッグ実行。

以下のエラーが出た。

[2011-02-24 22:17:57 - DeskClock] Re-installation failed due to different application signatures.
[2011-02-24 22:17:57 - DeskClock] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2011-02-24 22:17:57 - DeskClock] Please execute 'adb uninstall com.android.deskclock' in a shell.
[2011-02-24 22:17:58 - DeskClock] Launch canceled!

言われた通りにコマンドプロンプトに"adb uninstall com..."と入力てみたが、adb(Android Debug Bridge)にパスが通ってないので実行できない。環境変数のPathに、"C:\Program Files\Android\android-sdk-windows\platform-tools"を設定して、コマンドプロンプトを再起動してリトライ。

C:\Users\UserName> adb uninstall com.android.deskclock
Failure

あれ、「失敗」って…。

今度は、"Re-installation failed due to different application signatures."で検索してみると、すでにインストールされているDeskClockアプリの署名と、再度インストールするDeskClockアプリの署名が異なっているということらしい。心当たりはないが、やっているうちにヘンなことをしてしまったのか?

I can't install ApiDemos apps in my IDE because of a signing error

Android SDK and AVD Managerで、いったんエミュレータを削除して、再度実行すると問題なくDeskClockアプリが起動するようになった。

この画面が出ると成功。