以前にAndroid Studioを使ってみたもののバグばっかりだったという印象が残っていて、それ以降ずっと「Eclipseでいいや」と思っていたのですが、最近「Android Studioいいよ」という声が聞こえてきたので改めて導入してみました。
その際に既存プロジェクトの移行に手こずっている人が結構いるそうだったのでメモっておきました。
##前提条件
Mac (OS X 10.9.5)
Eclipse (Kepler)
Android Studio (0.8.6)
##移行する
1、Android Studioを立ち上げてImport Porject
2、対象プロジェクトのAndroidManifest.xmlを指定して、あとはNext,Next,Finish
基本的にはこれだけで完了です。ライブラリはもちろん、テストプロジェクトも移行されます。
##とはいえ、世の中そうはうまくいかない
以下、打ち当たった壁をどのように突破したかをつらつらと。
Lより低いのはダメって怒られる
importしてすぐ下記のエラーがでました。
Error:Execution failed for task ':myApp:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1
対処法としては、build.gradle内の
compile 'com.android.support:support-v4:+'
を
compile 'com.android.support:support-v4:20+'
に変えればうまくいくとのことです。
はじめは対象プロジェクトのみ変えていたのですが、うまくいかず、
最終的に使っているライブラリプロジェクトのbuild.gradleも同様に変更することでこのエラーは消えました。
他に SDK Managerの「Android Support Repository」をInstallすれば解消するなども見つけました。
また上記をしていても [Android SDK]/extras/android/m2repository というディレクトリがない人は下記コマンドを打ってインストールすることでうまくいくかもしれません。(私は一応これもやってます。)
android update sdk --no-ui --all --filter extra-android-m2repository
tools:replace="android:theme"をmanifestのapplicationタグに追加しろって怒られる
Error:(32, 9) Execution failed for task ':myApp:processDebugManifest'.
> Manifest merger failed : Attribute application@theme value=(@style/Theme.MyApp) from AndroidManifest.xml:32:9
is also present at MyApp:growthPushLibrary:unspecified:14:9 value=(@style/AppTheme)
Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:28:5 to override
言う通りに、applicationタグに tools:replace="android:theme"
を追加してももちろんダメで、
加えて下記をmanifestタグに追加しないと行けないようです。
xmlns:tools="http://schemas.android.com/tools"
ManifestタグとApplicationタグ、挿入する場所が違うので気をつけましょう。
##おまけ(ついてきたテストプロジェクトの動かし方)
簡単にテストを実行できました。
1、Rub -> Edit configuration を選択
2、左上の「+」を選択
3、「Android Tests」を選択
4、Nameを適当に埋めて、Moduleに対象プロジェクトを選んで OK
5、Run -> Run... を選択して 先ほど作成したTestを選択すればテストが走ります。