EclipseでAndroidプラットフォーム開発

ここにあるドキュメントにしたがって、Androidプラットフォームの開発環境を整えた時のメモです。

http://source.android.com/using-eclipse

できること、できないこと

以下の設定を行うと、Eclipseでコードの編集、コンパイルのチェック、デバッグができますが、Eclipseから直接ビルドすることはできません。buildにはshellでmakeをする必要があります。

前提

Androidのソースを取得して、ビルドが通る状態であること。

ソースの取得方法
http://source.android.com/download

$ cd /home/usr/android/mydroid/
$ make

Eclipseの設定

ビルド対象となるJavaファイルの設定

Java Build Path の設定をします。ソースにサンプルが含まれているのでこれを使います。

$ cd /home/usr/android/mydroid/
$ cp development/ide/eclipse/.classpath .
$ chmod u+w .classpath  # Make the copy writable
メモリ設定の変更

EclipseJava VMのメモリーを増やすために、eclipse/eclipse.iniを修正します。

  • デフォルト設定
  • Xms40m
  • Xmx256m
  • XX:MaxPermSize=256m
  • 推奨設定
  • Xms128m
  • Xmx512m
  • XX:MaxPermSize=256m

プロジェクトの作成

プラットフォーム開発のプロジェクトを作成します

  • File > New > Java Project
  • プロジェクト名を入力します。"android"など
  • "Create project from existing source"を選択し、Androidのルートディレクトリ(ここでは/home/usr/android/mydroid/)を設定し、Finish.
  • セットアップが完了するまでしばらく待ちましょう
Eclipse以外でファイルを変更した場合

repo syncなどを行ってEclipse以外でファイル変更をした場合、

  • プロジェクトを右クリック
  • コンテクストメニューから Refresh

をしてビューを更新しましょう。

エミュレータデバッグする

Eclipseエミュレータを使って、プラットフォームのデバッグができます。

プラットフォームのビルド
  • パスを通してプラットフォームのビルドをします
$ cd /home/usr/android/mydroid
$ . build/envsetup.sh
$ lunch 1
$ make
エミュレータデバッグマネージャを起動し、EclipseからDebugを走らせる
$ emulator
$ ddms
  • Eclipseからデバッグを実行します
    • Run > Debug Configurations...
    • "Remote Java Application"を右クリックして"New"を選択
    • 名前を設定します。"android-debug"など
    • "Project"を設定します。ここでは"android"
    • "Host"は"localhost"のまま、"Port"を8700に設定します
    • "Debug"をクリック

これでデバッグ実行されますが、パースペクティブが自動で切り替わらないので、手動で"Debug"パースペクティブに切り替えます。

トラブルシューティング

emulatorへのパス

すでにbuildされているemulatorを実行する場合でも下記コマンドでパスを通す必要があります

$ lunch 1
デバッグ実行がエラー

デバッグ実行時に以下のようなエラー

Failed to connect to remote VM
com.sun.jdi.connect.spi.ClosedConnectionException

「ddmsをkillしたときにadbをkillすればいい」という情報がありましたが、ダメなときはダメでした。今のところ解決策見つからず。