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アプリに手を入れられるようになりました。 ただ、改めてコードを読むと作りが古臭いので構造から見直しかな...
関連(するかもしれない)記事
おススメ