そごうソフトウェア研究所

SOA、開発プロセス、ITアーキテクチャなどについて書いています。Twitterやってます@rsogo

EclipseからAndroid Studioへ移行しました

先週末、あるAndroidのプロジェクトをEclipseベースから、Android Studioに移行しました。

新規のプロジェクトや、小さめのプロジェクトはAndroid Studio化は完了していたのですが、一番大きいプロジェクトは社外の開発者の方の慣れもあって、踏み切れていなかったのですが、急遽やる必要があって、慌ててやった感じです。

Android Studioに移行するにあたって、一番大きいのはGradleベースでビルド、リリースをできるようにすることでした。

Gradleでのライブラリの取り込みにでは次の3つを使い分けました。

  1. リポジトリに登録されているライブラリの参照
  2. jarファイルで公開されているライブラリの参照 リポジトリに登録されていない、社内のライブラリなど
  3. ライブラリプロジェクトの参照 ライブラリのソースを編集するようなケース
dependencies {
    compile fileTree(dir: ‘libs’, include: [‘*.jar’])
    compile ‘com.android.support:support-v4:22.+’    // 1の例
    compile ‘com.google.code.gson:gson:2.2.4’
    compile files(‘libs/StaggLib.jar’)     // 2の例
    compile project(‘:subproject’)       // 3の例
}

1,2は特に問題がないと思いますが、3について、やり方を忘れるので、メモ。

「File -> New -> Import Project」を選択

settings.gradleに参照が追加されるGUIでの操作では対象のプロジェクトは、元プロジェクトにコピーして、インポートされるので注意が必要。必要に応じて、コピーされたファイル群を削除して、File('')のパスをオリジナルのプロジェクトを参照するように修正する。

後は、Jarファイルを直接参照していたいのを、リポジトリから取得するように変更して、コンパイルが通るまで、ライブラリの重複なんかを取り除いていく。

その他、移行中に発生したエラーはこんな感じ。

移行とは、直接関係ないけど、ハマったのがAndroid Studioがハングするという問題。

Macで開発していましたが、Applications以下のAndroid Studioを削除したり、別のフォルダに新規にインストールしましたが、解決せず。 結局、こちらの情報を元に、Applications以外の場所もキレイにして、再インストールで解決しました。Applicationsの下だけ消せば、綺麗にアンインストールできるというのが、Macの良いところだと思うんだけど、これだとWindowsと一緒だよー!

その他参考にさせていただいた記事。

基本をおさえる!Androidアプリで指定するバージョンについて(compileSdk,buildToolsVersion,....) - Qiita

Android Studioでproguard付きでビルドした時の`Duplicate zip entry`エラーの調査と対応 - Qiita

Android Studio で Build Variants - Qiita

移行そのものではないけど、Gradle化に合わせて、環境差異や、リリース版/テスト版の違いをBuild Typeなんかで切り分けるのも入れた。