Eclipseで開発していたAndroidアプリをAndroid Studioに移行する


最終更新日が2015年の自作Androidアプリに手を入れようと思ったらEclipse向けのプロジェクト構成になっていました。 さすがにいまさらEclipseというわけにはいかないのでプロジェクトをAndroid Studioに移行することに。

目標は2つです。

  • Android Studio標準のディレクトリ構成に合わせる
  • Gitで管理していた履歴を極力保つ

ここからは環境はWindowsでE:\AndroidStudioを作業ディレクトリとする前提で記載しますが、MacやLinuxも流れは一緒かと思います。

まずはAndroid Studioでダミーのプロジェクトを新規作成しましょう。

  • 名前はプロジェクト名(SampleApp)
  • アプリ名やパッケージ名などは元のプロジェクトに合わせる
  • Activityなしで作成する

Android Studioをいったん終了し、ダミープロジェクトをリネームします。

E:\AndroidStudio> rename SampleApp SampleApp_dummy

EclipseプロジェクトのソースをGitからclone。

E:\AndroidStudio> git clone https://github.com/example/sampleapp.git
Cloning into 'sampleapp'...
(snip)
Checking connectivity... done.

作業用のbranchを作成します。

E:\AndroidStudio> cd sampleapp
E:\AndroidStudio\sampleapp> git branch AndroidStudio
E:\AndroidStudio\sampleapp> $ git checkout AndroidStudio
Switched to branch 'AndroidStudio'
E:\AndroidStudio\sampleapp>

ディレクトリとファイルをAndroidStudioの流儀に合わせて移動します。

E:\AndroidStudio\sampleapp> mkdir -p app/src/main/java
E:\AndroidStudio\sampleapp> git mv src/com app/src/main/java
E:\AndroidStudio\sampleapp> git mv res app/src/main
E:\AndroidStudio\sampleapp> git mv assets app/src/main
E:\AndroidStudio\sampleapp> git mv libs app
E:\AndroidStudio\sampleapp> git mv AndroidManifest.xml app/src/main

git mv src/com app/src/main/javaはパッケージ名がcomで始まる前提なので、netとかだったら適宜置き換えてください。

不要なディレクトリとファイルを削除します。

E:\AndroidStudio\sampleapp> dir /b
.classpath
.gitignore
.project
app
crashlytics.properties
proguard
proguard-project.txt
project.properties
src

E:\AndroidStudio\sampleapp> rmdir src
E:\AndroidStudio\sampleapp> del .classpath .project project.properties

ダミープロジェクトから必要なファイル一式を上書きします。app/src「以外」を上書きすればOK。

最後にAndroidManifest.xmlで定義されている以下のパラメータをbuild.gradleで定義し直します。

  • android:versionCode
  • android:versionName
  • android:minSdkVersion
  • android:targetSdkVersion

ここまでで一通りの移行ができているはずなので、AndroidStudioで読み込んでみてください。上手くいかないときは以下のあたりを確認。

  • プロジェクトのcleanを忘れずに
  • 文字コードや改行コード周りで不整合が起きるかも
  • SDKやライブラリのバージョンが古過ぎてエラーになりがち。いい機会なので諸々バージョンを上げるか、古いままにするかはケースバイケースで
  • 「Multiple dex files define…」のエラーがでるときはlibがダブっている可能性が高いのでいらないものを消しましょう

ここまでの作業をすることで、冒頭に書いた自作Androidアプリに手を入れられるようになりました。 ただ、改めてコードを読むと作りが古臭いので構造から見直しかな...




関連(するかもしれない)記事


おススメ