こんにちは。
みけです。
また仰々しいタイトルですみません。
Androidのsdkが5月16日近辺にrevision22に更新されたようです
リリースノートを一部抜粋、翻訳(意訳)するとこんな感じです。
- 既存の
platfomr-tools
を元にSDKの構造を変更して、新しいビルドツール等を追加しました。この変更により、ビルドツールのバージョンとIDEのバージョンを切り離すことが可能になります。その結果、IDEの更新なしにツールの更新が可能になりました。
さて、僕はAndroidに関しては情弱なので、この変更が意味するところをあまり気にせず、
本題である「JavaがAndroidでない理由」ことの実例コードを書こうとして
サンプルプロジェクトを作って、実行しようとした時にそれは起こりました。
android-apt-compiler: Cannot run program “/Users/name/Android/sdk/android-sdk-macosx/platform-tools/aapt”: error=2, No such file or directory
うん?コンパイル用のツールが見つからない?
というわけで、件のディレクトリーに移動、ファイル探してみると…
1 2 3 4 5 6 7 8 9 10 |
|
うむ、確かにそんなものはない…
で、いろいろとディレクトリーを漁ってみると
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
お、あった。
…あったはいいよ。
でも、このディレクトリーは何?
17.0.0
何、このディレクトリー。
数字ディレクトリー。
どこのSIerの作業ですか?
え、じゃあ、君は新しいAPIバージョン(例えば18)が出たら、
18.0.0
ディレクトリーでも作ってくれるんです?
これ、ビルドスクリプトとか、ビルド関連のちょっとした作業とか
ぶっ壊れるよね…え、ぶっ壊れない?なら、いいんだけど、
IntelliJ IDEA様を欺いているよね…
これじゃ
Androidってwrite once, run once upon a timeってことだよね
Javaの最も貫徹したコンセプトである
write once run anywhere
を破っているよね。
というわけで、結論
AndroidはJavaではなかった、決して
p.s.
最初この問題にあたった時にStack Overflowを調べました。
すでに、先駆者がいました。
Android Hello-World compile error: Intellij cannot find aapt
で、解決方法のアドバイスとして
- JetBrains様がIDEをアップデートしてくれるのを待つしかないんじゃない?
- シンボリックリンクを貼ればいいんじゃない
- ツール類を
platform-tools
にコピペすればいいんじゃない
と有りました。
当面の解決策としては2番目が採択されそうですが、
1 2 3 |
|
をやった後ですが、
はい、コンパイルできません。
というわけで、JetBrains様がIntelliJ IDEAを対応させるのを待つしかなさそうです。
IntelliJガチ勢の僕としては、googleに一言もの申したい
googleさん、JetBrains様にごめんなさいしてください
つーか、ツールがバージョンアップしてもIDEのバージョンアップが必要ないと言ってた、
あのリリースノート何だったんです?
google 「ツールがバージョンアップしてもIDEのバージョンアップがいらないと言ったな、あれは、嘘だ」