問題 §
PhoneGap 1.3のAndroid用サンプルを動かしてみたかったが、必用なソフトを全てインストールし、環境変数を設定してもビルドがエラーになる。
原因 §
故障修理の代用機として借りたAndroid機が2.2だったので、何気なく開発環境の仮想マシンも2.2で作成したが(仮想マシンで確認したコードをそのまま実機でも動かしたいから)、画面解像度に互換性の無い設定があったらしい。
解決方法 §
"……\callback-phonegap-b81151f\Android\Sample\AndroidManifest.xml"をテキストエディタで開き、以下の属性を削除する。
- android:xlargeScreens="true"
(注。XML文書は属性を属性単体でコメントアウトできないので、削除せずコメントアウトしたい場合はタグの外に出してからコメントアウトする)
補足 §
このケースではドキュメントも役に立たず、エラーメッセージも個別には何かを言っているのに全体では整合せず、関係ないメッセージも多くまったく意味不明。結局、エラーメッセージの整合性は無視して、ビルドツールはこういう順番で処理しているだろうという動作を推定してエラーメッセージの意味を勝手に再解釈してこの属性を特定しました。
しかし、その前に個別のツールが動作しているか確認したり、かなり時間と手間を使いました。
F5一発でスケルトンが動くWindows Phone環境とは雲泥の差。
PhoneGapの結論 §
- PhoneGapはHTML5の技術で、ソースコードの違いを吸収してくれる効能を持つ
- しかし、本来の開発環境の善し悪しの差までは吸収してくれない