Androidアプリ開発に挑戦してみる

Androidアプリを開発するにあたって、まずはAmazonで一番評判の良さそうな本を探しました。
買ったのは「Google Android アプリ開発ガイド 第2版」という本。

Google Androidアプリ開発ガイド Google Androidアプリ開発ガイド

秀和システム  
売り上げランキング : 256246
おすすめ平均 5つ星のうち 4.2

Amazonで詳しく見る

買ってざっと見てみた感じですと、Androidアプリ開発からマーケットへの登録まで一通り網羅してあり、初めてAndroidアプリを開発するにはちょうどいいかなという感じです。
ここまでしっかりと基本を網羅してある本は珍しく、書店で見た他の本と比べてもよい感じです。
ただ、JavaやEclipseについては最低限しか載ってないので、そちらが不得手な方は別に専門書を買った方がいいと思います。
それから、基本しか載ってないので、アプリをある程度自由に作れるようになったら、応用的なTipsが載っている本などを買う必要があるでしょう。

自分はJavaは昔少しだけ触ったことがありますが、C#に慣れてしまってからはそちらばかり。
EclipseもVisual Studioに比べるとどうも使い慣れなくて、大学の授業でしか触ったことがありませんでした。
なので、この本だけで開発に挑むのは無謀かなという気がしないでもないのですが、躓くまで進めてみようと思い、環境構築を始めました。

そして、本書第一章の環境構築からサンプルの動作までで、予想通り躓いて何時間も悩んだので、この記事を書くことにしました。^^;
ここでは、本書の通りに実行して、僕の躓きを再現し、乗り越えるための情報を記します。
より詳しい情報は、本を買って調べて下さい。


*

JavaとかEclipseとかって色んなバージョンがあって、どれを入れていいのかさっぱりでしたが、基本的に本書に書かれている通りに入れることにしました。
しかし、本書の発売から半年近く経っているため、いくつかのソフトウェアはバージョンアップしてしまっています。
今回の躓きは、そのために起こったようなので、自分が入れたバージョンを記しておきます。

まずはJavaですが、以下のページから JDK 6 を入れました。

JavaにはJREとJDKがあって、前者がJavaアプリを動作させるためのプログラムで、後者がJavaアプリを開発するためのSDKですね。これくらい僕でも知ってます。上記のページにはJDKに他の開発用アプリがセットになったものが何種類も用意されていますが、ここは「JDK ダウンロード」と書かれた赤いボタンからJDKだけをダウンロードしてインストールします。
バージョンは今日時点で最新版の Java SE 6 Update 23 を入れました。
使ってるOSがWindows7の64bitなので、「Windows x64」を選びたいところですが、Android開発は32bit環境で行わなければならないそうで、「Windows」を選んでダウンロードします。

次に Eclipse をインストールします。
ここでも本書の通りに、以下のサイトから Eclipse 3.5 Galileo Pleiades All in OneJava 向けの Standard All in One (JRE なし) をダウンロードしました。

ダウンロードしたファイルを展開すると、"eclipse" フォルダと ".metadata.default" フォルダが作られるので、前者をCドライブ直下などに移動します。僕は、"C:\Program files (x86)" の下に入れてしまいました。
後者のフォルダはたぶんワークスペースとして設定するフォルダに入れるような感じがしますが、僕は無視して削除しちゃいました。

次に android-sdk をインストールします。
以下のページから Windows android-sdk_r08-windows.zip をダウンロードしました。

本書ではバージョンがr06になっていますが、たった半年で2つもバージョンが進んでます。
今回躓いた原因は、ぶっちゃけこれでした!
ダウンロードが終了したらファイルを展開し、できたフォルダを、こちらも好きな場所に移動します。僕はこれもEclipseと同じ "C:\Program files (x86)" の下に置きました。
その後、本書では「SDK Setup.exe」を実行するように書いてありますが、そんな実行ファイルは無かったので、「SDK Manager.exe」を実行します。
「Available Packages」を選ぶと、インターネット上からパッケージをダウンロードしてインストールできるので、一通りインストールします。

そしたら、パスを通したり、Eclipseの設定を変更したりしますが、その部分は本を読んでもらうということで割愛して、最後に ADT (Android Development Tools) をインストールします。
これは、EclipseからURLを指定して行いました。バージョンは 8.0.1.v201012062107-82219 のようです。

さて、ここまでできたら Android Emulator の起動となりますが、Windows7, Core 2 Duo 3.0 Ghz, 6 GB の環境でも起動に3分くらいかかりました。
黒い画面に「A N D R O I D _」と表示されたまましばらく待たされますが、固まったと思わないで気長に待ってみましょう。

*

ではいよいよ、本書 1-1-5-2 のサンプルの実行に入ります。
今回インストールした android-sdk r08 には、Android 2.2 用のApiDemosは入っていませんでしたので、Andoroid 1.6 用のものを実行してみることにしました。
基本的には本に書いてある通りに操作していきますが、実行時にエラーが出ます。

今回コンソールタブに出たエラーがこれ。

[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\values\strings.xml:365: error: Apostrophe not preceded by \ (in I'm on! :))
[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\values\strings.xml:366: error: Apostrophe not preceded by \ (in I'm off! :()
[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\values\strings.xml:643: エラー: Apostrophe not preceded by \ (in The Android platform is a software stack for mobile devices including an
[2011-01-16 23:49:28 - ApiDemos] operating system, middleware and key applications. Developers can create
[2011-01-16 23:49:28 - ApiDemos] applications for the platform using the Android SDK. Applications are written
[2011-01-16 23:49:28 - ApiDemos] using the Java programming language and run on Dalvik, a custom virtual
[2011-01-16 23:49:28 - ApiDemos] machine designed for embedded use which runs on top of a Linux kernel.
[2011-01-16 23:49:28 - ApiDemos]
[2011-01-16 23:49:28 - ApiDemos] If you want to know how to develop applications for Android, you're in the
[2011-01-16 23:49:28 - ApiDemos] right place. This site provides a variety of documentation that will help you
[2011-01-16 23:49:28 - ApiDemos] learn about Android and develop mobile applications for the platform.
[2011-01-16 23:49:28 - ApiDemos]
[2011-01-16 23:49:28 - ApiDemos] An early look at the the Android SDK is also available. It includes sample
[2011-01-16 23:49:28 - ApiDemos] projects with source code, development tools, an emulator, and of course all
[2011-01-16 23:49:28 - ApiDemos] the libraries you'll need to build an Android application. What would it take
[2011-01-16 23:49:28 - ApiDemos] to build a better mobile phone?
[2011-01-16 23:49:28 - ApiDemos] )
[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\layout\scrollbar3.xml:87: エラー: エラー: No resource found that matches the given name (at 'text' with value '@string/scrollbar_3_text').
[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\layout\scrollbar3.xml:100: エラー: エラー: No resource found that matches the given name (at 'text' with value '@string/scrollbar_3_text').
[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\layout\scrollbar3.xml:117: エラー: エラー: No resource found that matches the given name (at 'text' with value '@string/scrollbar_3_text').
[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\layout\scrollbar3.xml:129: エラー: エラー: No resource found that matches the given name (at 'text' with value '@string/scrollbar_3_text').
[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\xml\advanced_preferences.xml:32: エラー: エラー: No resource found that matches the given name (at 'summaryOn' with value '@string/summary_on_advanced_toggle_preference').
[2011-01-16 23:49:28 - ApiDemos] C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\xml\advanced_preferences.xml:32: エラー: エラー: No resource found that matches the given name (at 'summaryOff' with value '@string/summary_off_advanced_toggle_preference').

これを見ても意味がわからなかったので、「問題」タブを見ました。これが間違いでした!
「問題」タブには、「IRemoteService を解決できません」「IRemoteServiceCallback を型に解決できません」「ISecondary を型に解決できません」「mCallbacks を解決できません」「R を解決できません」と、わかりやすそうな形でエラーが出ます。
本書を見ると、サンプルが動かない場合は、「R.java」を見るように書いてあるので、余計泥沼にハマっていきました。

import com.example.android.apis.R;

という行にエラーが出ていて、これが元凶のような感じがしてしまったからです。

でもそれは間違いでした。
問題があったのは、コンソールに出ていた通り "C:\Program Files (x86)\android-sdk-windows\platforms\android-4\samples\ApiDemos\res\values\strings.xml" の 365, 366, 643 行目。
正確には、365, 366, 635, 641 行目にあるアポストロフィーでした。
これがエスケープされてないのが問題だったようです。

上記XMLファイルをテキストエディタで開き、アポストロフィー ( ' ) の前にバックスラッシュ ( \ ) を挿入します。
そうすることで、デモプログラムを起動することができました。

サンプルコードもちゃんとテストしてからリリースしてくれよ……

Androidアプリ開発に挑戦してみる」への2件のフィードバック

  1. YAMA

    Androidアプリ開発初心者です。つづりは間違ってないのに、
    つづりが違うというメッセージが表示されていて困っていたところ、
    この記事を発見しました。
    「アポストロフィー ( ‘ ) の前にバックスラッシュ ( \ ) を挿入」
    アポストロフィの前ってバックスラッシュ入れないといけないのですね。
    初めて知りました。。。
    お陰で一歩前進しました。
    ありがとうございました。

  2. ゆうあん

    コメントありがとうございます!
    参考になったみたいで嬉しいです。

コメントを残す