2012年1月31日火曜日

AndroidManifest.xml file missing!

これまでAndroidアプリの開発でも Emacs + ant を使っていたのですが、今年はいろいろ新しいことも始めるゾ!という意気込みでどうもみんなが使ってるらしい Eclipse + ADT を使いはじめました。宣言

旧来Emacs + ant でビルドしていたプロジェクトディレクトリを丸ごとそのまま Eclipse にインポートしようとしたら AndroidManifest.xml file missing! と言われてしまって完了できなかったので対策メモ。


どうやら既にWorkspaceのディレクトリ配下にあるプロジェクトディレクトリを指定したのがマズかったもよう。

【前提ディレクトリ配置】
/path/to/work/  ← Workspaceのディレクトリ
/path/to/work/project/ ← プロジェクトディレクトリ(Workspace管理外)
(ちなみに Eclipse は Indigo、ADT は 16 です)

【手順】
[File] → [New] → [Other...] → 「Android Project」選択 → [Next >]
ここで Project Name に任意の名前を入力して「Create project from existing source」にチェック、Location として /path/to/work/project/ を指定します。
(/path/to/work/project/ はこれまで Eclipse で使ったことがないので .classpath や .project  というファイルはありません)

【問題】
これだと、Consoleに AndroidManifest.xml file missing! とエラー表示されてインポートできません。。Project Name に入力した名前のディレクトリにプロジェクトのファイル一式をコピーしようとして、どうもそれが失敗するようです。

【解決編A】
Project Name が /path/to/work/project/ の project の部分(Workspaceディレクトリからの差分)だと、失敗せずちゃんとインポートすることができます。とりあえずこれでインポートしてから [Refactor] → [Rename...] がお手軽かも。

【解決編B】
一旦プロジェクトディレクトリを Workspaceの外に移動します。
mv /path/to/work/project /tmp/
Android Project の新規作成を同じ手順で進めて、Location に今移動した先の /tmp/project/ を指定します。こうすればエラーせずインポートできます。

でもやっぱりプロジェクトディレクトリはWorkspaceのディレクトリの中に収めておきたい、、という場合は Package Explorer から今のプロジェクトを選択して
[Refactor] → [Move...]
「Use default location」にチェックすると Workspace直下にプロジェクトが移動されます。

【余談】
Eclipseで使っていたプロジェクトディレクトリ(具体的には .classpath .project があるディレクトリ)は
[File] → [Import...] → 「Existing Projects into Workspace」選択 → [Next >]
で Select root directory に /path/to/work/project/ を指定すればインポートできます。

ずっと Eclipse 使ってた人には「常識」なのかもですが、まだまだこんなところで躓きますねー>< (いや逆にずっと Eclipse だったら .classpath や .project があってこんなところにハマらないのかな?)
どういう単位でWorkspaceを分けるのがよいかは今も悩んでいます(`・ω・´)

0 件のコメント:

コメントを投稿