技術メモ

技術メモ

古い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の機能を呼び出すためのインターフェース群)」が必要になる。

  1. ダウンロード

    バージョンによって、「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

  2. インポート
    [ファイル][新規][その他][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でプロジェクトフォルダに「!」マークが出た時の対処法 - しろかい!

一見意味のにないように思えて、実際にやってみると解決してしまうことがある。
上の作業でいえば、ライブラリの紐づけを一度外してもう一度付けたら…(もうよく分からない)。

おわりに

泥臭さ