リリース用パッケージのビルドは別フォルダというか別ワークスペースを用意してそこでビルドしようと考えた。

手間が増えるがいくつかの理由がある。
  • C言語のヘッダファイルのように使っているinterfaceファイルの書き換えに伴うヒューマンエラーを抑えたいこと。
が一番大きな理由。

これにともない。バージョン管理も思い切って二重化するスタイルとしてみる。

ひとまず、新しいフォルダを作成しプロジェクトのフォルダを丸ごとコピー。
新しいフォルダ側では別管理になるのでコピーされたばかりのbzrフォルダは削除する。
(今後、開発フォルダとリリースビルドフォルダの間は、WinMergeを使って変更箇所を確認しつつ同期をとることにする。)


Eclipseを起動し、新しいフォルダをワークスペースとして指定。
プロジェクトをインポートする。

自動ビルドが走るが、いきなりAndroid関係でエラーが発生。
これはワークスペースが新しいためAndroid SDKへのパス情報が設定されていないことが原因。
Window → Preferences → Androidとたどり、SDKのパス情報を設定する。
このときProGuardでエラーが発生しないよう、フォルダ名は短縮名で指定する

これで大丈夫、かと思ったらまだエラーが発生する。
Android requires compiler compliance level 5.0. Please fix project properties.
まれにEclipseを再起動しないと設定が反映されないことがあるため、念のため再起動してみたがやはり駄目。

Java関連のエラーのようだ。
Window → Preferences → Java → Compiler にCompiler compliance level という項目があり、自分の環境では「1.6」となっていたので、ここを「1.5」に変更してみる。
これで大丈夫、かと思ったらまだエラーが発生する。
Eclipseを再起動してみたがやはり駄目。

そもそも元のプロジェクトでこの設定を変えた記憶はない。元のワークスペースを開いて確認してみたがやはり「1.6」のまま。

1.6のままでいいじゃねえかと新しいワークスペースの設定を「1.6」にいったん戻した上でその次の策を考えようと思った。
「1.6」に戻す。Apply。リビルドが必要とダイアログが出るのでリビルドする。

エラーが消えた。???
わけがわからない。

だが、ひとまず当面の問題は解決した。原因究明はまたいつの日か行うことにする。

同じ操作でr14への更新時のエラーへ対応した際のエントリはこちら


リリース用エクスポートのような定型作業をGUIで対話的に行うのはかえってミスのもとではないかと考えているので、次回作ではリリースビルドはコマンドライン作業できるよう挑戦したい。
そしてバージョン管理も二重化しないようにする。

[追記] 2011/08/25
その後コマンドラインでのビルドに挑戦してみた