« zshのプロンプトにgit statusの情報(の一部)を表示する | メイン | m2eclipse-android-integrationで作成されるpom.xmlの修正版 »

EclipseでAndroidプロジェクトをMavenで管理するための環境構築 + Emacsキーバインドの設定

追記
情報が古くなったので、書き直しました。
個人用メモ。開発環境をゼロから構築するエントリーを書く予定が試行錯誤しすぎてよくわからなくなってしまったから妥協したともいう。環境はMac OS X Lion(10.7)。
Eclipse
Eclipseは「Eclipse IDE for Java EE Developers」の3.6.2(Helios SR2)を利用。
Eclipseの日本語化
Eclipseを日本語化したものもあるが、何か起きたときに原因追及がしにくくなるので後で簡単に英語版に戻せるように日本語化パックを使う。日本語化パックはblanco Frameworkの「Eclipse 日本語化言語パック (サードパーティ版)」の「3.6.0 Stream Build」を使用。今のところ、Eclipseの最新版の3.7.xには日本語化パックがない模様。
Eclipseディレクトリ直下の「dropins」に「nlpack」ディレクトリを作り、ダウンロードしたものを解凍。解凍すると「eclipse/dropins/nlpack/eclipse/features」と「eclipse/dropins/nlpack/eclipse/plugins」以下に日本語化パックが入る。プラグインを「eclipse/features」と「eclipse/plugins」に入れるようにと書いてある文書を見かけるが、何かあった時の問題の切り分けに苦労するので、「dropins」を活用する方法がお勧め。
Android SDK
以下のURLからr12(version 3.1)をダウンロードして「~/Developer/」直下に解凍。
最新版はr13(version 3.2)なんだけど、ダウンロードページのトップがr12になっているのでr12にした。もしかして、r13はまだ不安定???

配置がHome配下なのは、パーミッションの問題に悩む必要がないため。入れたSDKのバージョンがわからなくなるのも面倒なのでディレクトリ名は「android-sdk-mac_x86」のまま。
Eclipseのプラグイン
以下、全てEclipse経由でインストール。「ヘルプ」=>「新規ソフトウェアのインストール...」を選択すると、「インストール」ダイアログが開くので「追加」をクリックし、任意の「名前」とダウンロード用の「ロケーション」のURLを入力し「OK」をクリック。「ロケーション」と自分がつけている「名前」は、各プラグイン別に後述。「名前」は自分がわかりやすいものに変更すると後で混乱しない。

「インストール」ダイアログの「作業対象」から追加したロケーションを選択すると、リストボックスにダウンロードできるプラグインの一覧が表示されるので、インストールしたいプラグインをチェックボックスで選択し「次へ」をクリック。後は指示に従ってインストール。途中、ライセンスの使用条件に同意する画面が出てくるので、そこだけ気をつける。
ADT Plugin for Eclipse
AndroidアプリケーションをEclipseで開発するためのプラグイン。ADTはAndroid Development Toolsの略。
「名前」と「ロケーション」は以下の通り。
名前 : Android Development Tools Plugin(ADT Plugin)
ロケーション : https://dl-ssl.google.com/android/eclipse/

インストール後、「Eclipse」=>「環境設定...」=>「Android」=>「SDK Location」にAndroid SDKディレクトリのパスを入力する必要がある。「~/Developer/android-sdk-mac_x86」と入力できれば良かったんだけど、絶対パスでないとだめらしい。ここでは、「/Users/[ログインユーザ名]/Developer/android-sdk-mac_x86」とした。

パスを設定後、「ウィンドウ」=>「Android SDK and AVD Manager」でダイアログを開き、「Available packages」でSDKや「Platform-tools」のインストール、「Virtual devices」でAndroid端末のエミュレータを作成することができるようになる。
M2Eclipse
MavenをEclipseから使うためのプラグイン。Mavenそのものが組み込まれているので、別途Mavenをインストールする必要がない。
「名前」と「ロケーション」は以下の通り。
名前 : m2eclipse
ロケーション : http://m2eclipse.sonatype.org/sites/m2e

Mavenは日本語の情報が少ないが、「Apache Maven 2.0入門」という良本がある。現状のMavenの最新版は3.0.3だけどお勧め。新品が売っていないので絶版しているのかもしれない。Maven3向けに書き換えたものを出し欲しい。
Maven Integration for Android Development Tools
Mavenに対応したAndroidのプロジェクトを作成するためのプラグイン。
「名前」と「ロケーション」は以下の通り。
名前 : Maven Integration for Android Development Tools
ロケーション : https://svn.codespot.com/a/eclipselabs.org/m2eclipse-android-integration/updates/m2eclipse-android-integration/
ロケーション : http://m2eclipse-android-integration.googlecode.com/svn/trunk/com.byluroid.eclipse.maven.android.update/
「svn.codespot.com」からダウンロードできるのは現状では0.2.4と0.2.5で、「m2eclipse-android-integration.googlecode.com」は0.2.3。

このプラグインをインストールすると、Mavenプロジェクトを作成するときに、「android-quickstart」というArchetypeが選択できるようになる。「android-quickstart」をもとにプロジェクトを作成すると、「maven-android-plugin」の設定がされたpom.xmlが作られる。ただ、pom.xmlを少し修正する必要がある。

まず、公式サイトにもある通り、Android SDKのパスを設定する必要がある。pom.xmlの「project>build>plugins」配下の「maven-android-plugin」の「configuration>sdk」に、「<path>${user.home}/Developer/android-sdk-mac_x86</path>」を追加する。

また、このまま開発を行っていると「[ERROR] Cannot add resources from jar Duplicate files at the same path inside the APK」とエラーが出て正常なAPKファイルが作成できなくなることがある。原因は「Maven package」を実行するときにtarget配下に追加するjarファイルが重複するため。この問題を解消するには、「maven-android-plugin」のバージョンを「2.9.0」系に上げ、「configuration」直下に「<extractDuplicates>true</extractDuplicates>」を追加する必要がある。

既存のAndroidプロジェクトをMavenに対応させる場合にも、「android-quickstart」で作成されるpom.xmlを参考にするとよい。

あと、最新のEclipseである3.7(Indigo)だとそのままでは使えないらしい。詳細は以下のURL。
Emacs+ Eclipse Plug-in
Eclipseは設定でEmacsに似たキーバインドに変更することができるが、中途半端感が否めない。「Emacs+ Eclipse Plug-in」は、よりEmacsのキーバインドに近づけることができるプラグイン。
「名前」と「ロケーション」は以下の通り。
名前 : Emacs+ Eclipse Plug-in
ロケーション : http://www.mulgasoft.com/emacsplus/update-site

インストール後、「Eclipse」=>「環境設定...」=>「一般」=>「キー」の「スキーム」から「Emacs+ Scheme」を選択する。これを入れたら、イライラすることがなくなった。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

Google

タグ クラウド