2011/11/22

Android プロジェクトを jar ライブラリ化できるのか?

以前、Android プロジェクトを jarライブラリ化する というエントリで、
本件、Googleが公式に出来ないと発表していることがわかりました。 res を使っている場合、jarライブラリ化するのは諦めた方が良さそうです。
と書きました。
ただ、みなさん考えることは同じのようで、ADT r14 でこれを解決したという記事を見つけました!
Android Developers Blog: Changes to Library Projects in Android SDK Tools, r14

「おー、やったー」と思って、いろいろやってみました。
が、結果を先に書いておくと、まだ res を含んだプロジェクトの jarライブラリ化は出来ないようです。

その辺の勘違いについて書いておこうと思います。

まず、以下のような記述があるのです。
For r14, we decided to fix both issues at once, by moving to a compiled-code based library mechanism. This solves the implementation fragility in Eclipse and will allow us to, later, enable distribution of libraries as a single jar file.
ざっと読むと、コンパイル済みコードベースのライブラリに移行するから、jarファイルでライブラリ化できるようになったよ。というように読めます。

ところが、どこを探しても実際にjarファイルで吐き出す方法が書いてないんですね。
で、実際にテストプロジェクトを作成していろいろ試してみたんですが、どうもうまくいきません。
(リソースの扱いが、以前とあまり変わっていない気がする…)

で、もう一度、英文をよく読んでみました。
そうすると、
Also included is an under-the-hood change in how libraries are used by main projects — a first step in improving library support and code reusability.
とか書いてあるではありませんか。
自分のつたない英語力では自信がないのですが、要は「問題を解決するために、内部的な修正を行った。でも、まだ第一歩。(だから解決したわけではない。)」
ということのようです。

Android Developers Blog: Changes to Library Projects in Android SDK Tools, r14 で伝えたいことは、「“内部的な修正(コンパイル済みコードベースのライブラリへ移行すること)”によって、ちょっとばかし既存のプロジェクトに問題が起こることがある。それの解決方法は以下です。」ということだったようです。

よくよく読むと、「将来的に」ということを匂わす記述っぽいのがありますが、私のように英語が苦手な人間には、そんなニュアンスまで読み取れません…orz

まー、ぬか喜びとは言え、Google は今後、jar ファイルでライブラリ化できるようにする気があることがわかって良かったです。
気長に待ちます。


ちなみに、私は英語が苦手なので、もしかすると、本当は r14 で jar ライブラリ化できるようになっているのかもしれません。
もし、そういった情報をお持ちの方は、是非コメントで教えてください。


0 件のコメント: