古いAndroidアプリをバージョンアップすることになった人へ
はじめに
eclipseで作成されたAndroidアプリの開発環境を構築する際の流れです。
利用しているライブラリによって、多少作業が増えたり減ったりすると思います。
「Android Studio」に移行できた人は読む必要がないので、戻るボタンをどうぞ。
お察しの通り、「Android Studio」の話は出てきません(移行を試みましたが…)。
1. 「eclipse with adt」のダウンロード
本家のダウンロードページが見つからないので、別途提供元を探す必要がある。
補足資料 1. — 補足資料 1 documentationからダウンロードする。
パスが長すぎる場合、解凍時に問題が発生する(「エラー 0x80010135 パスが長すぎます」が発生する)ため、ダウンロード先は「C:\(ドライブ直下)」等を指定する。
2. 「SDK Manager」で各ツールをインストール
アプリを動かすのに最低限必要なツール(「Android4.4」「Google API」「usb driver」等)をインストールする。
3. プロジェクトをインポート
バージョン管理の有無によって対応が異なる。
- gitbuket等でバージョン管理されていない場合
Eclipseにソースコードを取り込むには - 逆引きAndroid入門に倣って、該当ディレクトリのインポートを行う。
ちなみに、gitbucket等でバージョン管理したい場合は、
[Git Repository Exploring](Perspective)を開いて、「Clone a git repository」をクリックする。表示されるウィンドウにしたがって、作成済みのリモートリポジトリに関する情報(http clone url、ユーザ名、パスワード等)と、作成するローカルリポジトリの宛先を入力する。
上記で作成したローカルリポジトリと該当プロジェクトを関連付ける必要がある。該当プロジェクトを右クリックして[Team][Share Project…]を選択する。表示されるウィンドウで、上記で作成したローカルリポジトリを指定する。
管理対象としないリソース(/bin・/gen等)を.gitignoreに追記する。プッシュする際に、Gitに関する情報(ユーザ、メールアドレス)を設定すれば完了。 - gitbucket等でバージョン管理されている場合
メニュータブから[File][import][Git][projects from git]を選択する。表示されるウィンドウにしたがって、既存のリモートリポジトリに関する情報(リモート先、ユーザID/パスワード)を指定する。
その他の画面は、デフォルトのまま「next」をクリックしていけば完了。A.01. Git リポジトリからのプロジェクトのインポート · mixi-inc/AndroidTraining Wiki · GitHub
4. 「SDK Manager」でインストールできない各ツールをダウンロード&インポート
基本的には、前開発者が利用していたものを共有してもらう。
それができないようであれば、本家またはその他の提供元からダウンロードする。
バージョンによって配布方法やAPIが変更されるため、そこを踏まえたうえでダウンロードを行う必要がある。
例. 「Google Play Services」をダウンロード&インポート
「google maps api」を利用しているアプリの場合、「google play services(端末にインストールされている「Google Play 開発者サービス」というAPKの機能を呼び出すためのインターフェース群)」が必要になる。
- ダウンロード
バージョンによって、「google play services」の中身が異なる。
Eclipse 用の Google Play Services Library のありか - Qiitaあるバージョンから、「libproject」がなくなっている。
android - Missing "<sdk>/extras/google/google_play_services/libproject" folder after update to revision 30 - Stack Overflowまた、あるバージョンから、いくつかのパッケージが廃止されている。
com.google.android.gms.location.LocationClientがimportできない -でじうぃき最新バージョンをダウンロードして実装側でその差分(中身が違うとかAPIが変更されたとか)を埋めるか、前開発時に利用していたバージョンをダウンロードしてそのまま利用するか。
今回は後者で対応する。
旧バージョンのダウンロードリンクを利用して、該当バージョンを取得する。
android - Missing "<sdk>/extras/google/google_play_services/libproject" folder after update to revision 30 - Stack Overflow
java - How to download older google play services? - Stack Overflow -
インポート
[ファイル][新規][その他][Android][既存コードからのAndroidプロジェクト]を選択する。
表示されるウィンドウで、「プロジェクトをワークスペースにコピー」にチェックを付け、「google-play-services_lib」を指定して、対象ライブラリをプロジェクトとしてインポートする。「Package Exploer」の「google_play_services_lib」を右クリックし、[Properties][Android][Project build target]を選択する。該当するAPIにチェックを入れる。
「Package Exploer」の該当プロジェクトを右クリックし、[Properties][Android][Project build target]を選択する。「Google API」にチェックし、「Library」に上記でインポートした「google_play_services_lib」を追加する。
5. 4のツール関連の設定
認証周りで作業が必要になったりする。
例. 「Google Maps APIキー」利用に関する設定
「Google Developers Console(https://console.developers.google.com/?hl=JA)」にログインする。
「認証情報」より対象のAPIキーをクリックし、パッケージ名とフィンガープリントの追加を行う(フィンガープリントは、[Window][preference][Android][Build]から確認する)。
6. エラー対応
逐一調べていくしかない
Eclipseでプロジェクトフォルダに「!」マークが出た時の対処法 - しろかい!
一見意味のにないように思えて、実際にやってみると解決してしまうことがある。
上の作業でいえば、ライブラリの紐づけを一度外してもう一度付けたら…(もうよく分からない)。
おわりに
泥臭さ