#AndroidStudio で Android アプリのパッケージ名を実際に変更してみた
Android Studio で Android アプリのパッケージ名を変更した。ネット上に情報はあるが、それらと微妙に違ったので備忘録的にメモ。AndroidStudio は Version 2.0。
##パッケージ名 xxx.yyy.zzz を aaa.bbb.ccc にする場合の手順
##0. 念のためにプロジェクトをバックアップ
##1.AndroidManifest.xmlを編集する
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="aaa.bbb.ccc">
##2.build.gradle に applicationId を追加
今回のプロジェクトにはなぜか build.gradle に applicationId がなかったので、android -> default Config の中に追加。
(この行は最後に削除したので、追加しなくてもよかったかも...)
android {
defaultConfig {
applicationId "aaa.bbb.ccc" // この行を追加
minSdkVersion 21
}
}
##3. ディレクトリ名の変更
###3.1 パターン1(新しめ?)
プロジェクトのディレクトリ構造が
[プロジェクト名]\app\src\androidTest\java\xxx\yyy\zzz
[プロジェクト名]\app\src\main\java\xxx\yyy\zzz
[プロジェクト名]\app\src\test\java\xxx\yyy\zzz\
となっているところを
[プロジェクト名]\app\src\androidTest\java\aaa\bbb\ccc
[プロジェクト名]\app\src\main\java\aaa\bbb\ccc
[プロジェクト名]\app\src\test\java\aaa\bbb\ccc\
に変更
###3.2 パターン2(割と古め?)
プロジェクトのディレクトリ構造が
[プロジェクト名]\src\xxx\yyy\zzz\
となっているところを
[プロジェクト名]\src\aaa\bbb\ccc\
に変更
##4. パッケージ名を置換
java ソース中の pakege * や import * の中の "xxx.yyy.zzz" を "aaa.bbb.ccc" に置換する。Android Studio の [Refactor]->[Rename] を使っても、なぜか zzz が ccc に変わるだけなので、サクラエディター上で [検索]->[Grep置換]と進み Grep置換を起動して
[プロジェクト名]\src\aaa\bbb\ccc\
以下のファイルに対して "xxx.yyy.zzz" を "aaa.bbb.ccc" に置換。このときサクラの Grep置換ダイアログ上の [単語単位で探す(W)] はチェックを外す。
##5. Syncする
AndroidStudio のコードエディターで build.gradle を開くと、上の方に、Sync しろ!と表示されているので Sync を実行。
##6. build.gradle から applicationId を削除
ここで Run すると、Build はできるが、実機で起動しようとするとエラーになった。理由はわからないが applicationId を削除したらうまくいった。
もともと build.gradle に applicationId がない場合は追加しなくても良いのかもしれない。次の機会に検証しよう。