Google I/O 2013 でいろいろ発表があったので、試してみたくなるのがエンジニアってもんでしょう。
Xamarin.Android の 4.6.6 で Android SDK r22 に対応したので、この記事は無意味になりました。
アップデート後、r22 でも無事ビルドできるようになりました。
Keynote から一夜明け、Android SDK を r22 に更新しました。 するとまず、昨日までビルドできていた Java の Android のプロジェクトがビルドできなくなりました。
この症状は、こちらのツイート:
状況・ライブラリプロジェクトを使用・r22 でビルドが死んだ対策・SDK Build-tools を入れた(antは復旧)・<classpathentry combineaccessrules="false" kind="src" path="/hoge"/> 追加
— dmpさん (@dmp) 2013年5月16日
に加えて、Eclipse の ADT Plugin を更新することで解決できました。(私の場合、<classpathentry〜
は行わなくても大丈夫でした。[勝手に追加されてました])
やれやれと思ったところで、こんなツイートが。
I know you are all eager to try the new stuff but since Google shuffled some binaries in the latest SDK, it breaks Xamarin.Android for now
— Jérémie Lavalさん (@jeremie_laval) 2013年5月16日
「Google が SDK の場所を替えたので、Xamarin.Android は今壊れてる(意訳)」とのことです。
マジで?と思って、試してみると確かにビルド時にエラーががが。
Error: Error executing tool '/…/android-sdk-macosx/platform-tools/aapt':
先のトラブルで、「SDK Build-tools が新しく追加された」=「今までの場所にはもうない」、つまり、エラーになっているのは aapt(Android のパッケージ作成ツール) が意図した場所に存在しないからでは?と考えられます。
というわけで、 aapt はどこへ行ったのか、Android SDK のフォルダを Finder(エクスプローラ)で覗いてみます。
むう、確かに /platform-tools
の中には aapt
は存在せず、代わりに /build-tools/17.0.0
の中にあります。
Xamarin Studio の設定で、aapt の場所を /build-tools に変更できれば良かったのですが、残念ながら見つけられず、仕方ないので /build-tools/17.0.0
配下のファイルとフォルダを、 /platform-tools
にコピーしました。
そして Xamarin Studio に戻り、もう一度ビルドを実行、無事ビルドできました。
近いうちに Xamarin さん側で対応してくれると思いますが、それまでのつなぎとして。