スポンサーリンク
EclipseにAndroidアプリの開発環境を構築したときの手順をメモしておきます。作業中にエラーがやたら出たので、エラーメッセージで検索する人に向けになっています。
目次
スポンサーリンク
JDK・Eclipse・Android SDKはインストール済み
研究で使うので「JDK7」と「Eclipse(JUNO, 4.2.0)」はインストール済みで、Androidの画面をキャプチャするためにAndroid SDKはインストール済みでした。
でもAndroid SDKのアーカイブ版をもう一度インストール
Android SDKのインストールはこちらから。Windows用インストーラを使えばすいすいインストールできます。しかし今回は、あえて「.zip」をダウンロードし、それを展開したものを使うことにしました。これで、開発環境を複数マシンで利用しやすくなります→「Dropbox専用ドライブを作ってどのPCからでも同じフルパスを使えるようにする方法メモ」
Android Development Toolkit (ADT)をインストール
EclipseプラグインADTをインストールします。「Help>Marketplace...」を開いて、「Search」タブの「Find」に「ADT」と入力して検索します。すると、「Android ADT extentions」と「Android Development Tools for Eclipse」という紛らわしい2つが出てくるのですが、ここでインストールするのは後者です。「by Google, Inc.」のほう。
「Install」ボタンから「Android DDMS」「Android Development Tools」「Android Hierarchy Viewer」「Android Traceview」がインストールできます。
EclipseでAndroid SDKのインストールフォルダを指定する
「Window>Preference>Android」で、「SDK Location」を「X:...\android-sdk-windows」と指定し、「Apply」をクリックしました。しかし、
SDK Platform Tools component is missing!
Please use the SDK Manager to install it.
と表示されてしまいました。そこで、そのまま「Open Manager」をクリックすると「Android SDK Manager」が起動したので、「Tools>Android SDK Platform Tools」と、デフォルトの「Android 4.1(API 16)」「Google USB Driver」にチェックを入れた状態で「Install 8 packages」をクリックしてインストールしました。
再びEclipseに戻って「Apply」をクリックすると、特に問題なし。
エミュレータの設定
続いて、Eclipseの「Window>ADV Manager」から「Android Virtual Device Manager」を開きます。「New...」ボタンから「Create new Android Virtual Device (AVD)」を開き、次の内容を入力して、「Create AVD」をクリックしました。
- Name: AVD-4.1
- Target: Android 4.1 - API Level 16
- CPU/ABI: ARM (armeabi-v7a)←変更不可
- SD Card: Size 64 MiB
- Snapshot: Enabled - On
- Skin Built-in: Default (WVGA800)
hardware:
- Abstracted LCD density: 240
- Max VM application heap size: 48
- Device ram size: 512
ちなみに、ここの「Target」で選べるのは、対応するAndroidのバージョンですが、ここに表示されるのは、「Android SDK Manager」でインストールしたもののみなので、選択したい「Target」が一覧に表示されない場合は、「Window>Android SDK Manager」から、対応するバージョンをインストールしてください。
プロジェクトを作成する
「File>New>Project...」から「Android>Android Application Project」を選択して「Next」をクリックします。そして、次のような情報を入力しました。
- Application Name: Application Name
- Project Name: ApplicationName
- Package name: net.did2memo.applicationname
- Build SDK: Android 4.1 (API 16)
- Minimum Required SDK: API 8: Android 2.2 (Froyo)←デフォルト
- ON: Create custom launcher icon
- OFF: Mark this project as alibrary
- Create Project in Workspace
しかし、入力中に一度でも「A package name cannnot start or end with a dot」などを表示されてしまうと、正しい入力に修正したとしても、「Next」や「Finish」が押せなくなるという問題に遭遇し、かなり困ってしまいました。これでは、Android Projectを新規作成できないわけです。また、「Build SDK」のところも空欄になってしまい、設定できませんでした。
そこで少し調べてみると、「Cannot create a new Android Project using Eclipse - Stack Overflow」が見つかりました。ダメ元で、Android SDK Managerから「Extras>Android Support Library」をインストールしてみたところ、なぜかエラー表示がちゃんと更新されるようになりました。また、コピーが二重になる問題も解消されました。まったくなんとわかりにくい・・・とりあえずこれによって、うまく新規作成できました。
次に「Configure Launcher Icon」というところでアイコン画像を設定できましたが、そんなもの最後に作りたいので、デフォルトのまま「Next」をクリックしました。
次は「Create Activity」というダイアログでしたが、「Create Activity」でOFFを選択し、「Finish」をクリックしました。
参考にしていた複数のサイトでは、このようにしてプロジェクトを作ると、srcの中に「Hello World, Start!」と表示するためのコードも作られるらしいのですが、そのようなコードは存在せず、さっぱりどうすればいいか分かりませんでした。そこで、「Android Sample Project」というものを作ってみることにしました。
Android Sample Projectを作る
「File>New>Project...」から「Android>Android Sample Project」を選択して「Next」。「Select Build Target」で「Android 4.1」がチェックされていたので、そのまま「Next」。「Select Sample」でサンプルが選べるので、なんとなく「NotePad」を選択して「Finish」。すると、Package Explorerに「NotePad」が追加されます。
Sample Projectを実行してみる
「Run>Run Configurations...」から「Run Configurations」を開いて、左のペインで「Android Application」を選択した状態で新規作成(New)ボタンをクリックする。「Name:」に「NotePad」と入力し、「Project:」でも「NotePad」を選択する。
Targetタブで「Automatically pick compatible device: Always uses preferred AVD if set below, launches on compatible device/AVD otherwise.」を選択して、「Select a preferred Android Virtual Device for deployment:」で先ほど作ったエミュレータ「AVD-4.1」を選択。そして、「Apply」→「Run」と実行したところ、次のエラーが表示されました。
Your project contains error(s), please fix them before running your application.
Sampleなのになぜ…と思ったわけですが、たしかに「Problems」Viewで確認してみると、
Erros>AndroidManifest.xml file missing!
が表示されていました。しかし、特に問題がないはずなので、もう一度実行してみると、なぜかこのエラーは回避され、次のエラーが表示されました。
The connection to adb is down, and a severe error has occured.
You must restart adb and Eclipse.
Please ensure that adb is correctly located at 'X:.../android-sdk-windows\platform-tools\adb.exe' and can be executed.
というわけで、Eclipseを再起動してから「Window>ADV Manager」で「AVD-4.1」を選択して「Start...」からエミュレータを起動してみると、エラーが回避できました。
しかし今度は「Waiting for HOME ('android.process.acore') to be launched...」で止まって先に進まない状態になってしまったので、もう一度実行してみると、次のように表示され、「NotePad」がエミュレータ上で起動しました。
Android Launch! adb is running normally. Performing com.example.android.notepad.NotesList activity launch Automatic Target Mode: Preferred AVD 'AVD-4.1' is available on emulator 'emulator-5554' Uploading NotePad.apk onto device 'emulator-5554' Installing NotePad.apk... HOME is up on device 'emulator-5554' Uploading NotePad.apk onto device 'emulator-5554' Installing NotePad.apk... Success! Starting activity com.example.android.notepad.NotesList on device emulator-5554 ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.android.notepad/.NotesList } New package not yet registered with the system. Waiting 3 seconds before next attempt. Success! Starting activity com.example.android.notepad.NotesList on device emulator-5554 Starting activity com.example.android.notepad.NotesList on device emulator-5554 ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.android.notepad/.NotesList } ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.android.notepad/.NotesList } ActivityManager: Warning: Activity not started, its current task has been brought to the front
もう一度Android Projectを新規作成してみる
先ほど、「Hello World!」と表示するためのコードも作られるらしいが作られなかった、と言いましたが、実は、「Create Activity」にて「BlankActivity」を選択すると、「Hello World!」と表示されるアプリケーションが自動構築されるということが分かりました。そこで、再び作り直してみました。
すると、srcディレクトリの中に唯一作られたHelloActivity.java(自分で設定した名前)でエラーが発生していました。それによると、「R」というクラスが見つからないというエラーだったので、Quick Fixで「import android.R」を挿入したのですが、今度は「R.layout.activity_hello」が見つからないエラーになってしまいました。
そこでまた調べてみると、ここで指定している「R」は、本来「gen」ディレクトリに作られる「R.java」であって、「android.R」ではないようなのです。そして、R.javaは、基本的に.xmlファイルの変更に応じて自動的に更新されるものの、初回はビルドしてあげる必要があるとのことでした。そこで、「Project>Build Project」でビルドしてあげると、R.javaが生成され、エラーは消えました。
この状態で先ほどのSample Android Projectと同様に実行して上げると、ちゃんと「Hello, World」を表示するアプリケーションが実行されました。
ひとまず、完成済みのアプリケーションを起動できるようにまでなりました。それにしても、いろいろと躓きポイントと、謎のエラーが多かったです。
スポンサーリンク
スポンサーリンク