パッケージ名を変更して別アプリとして認識させる
はじめに
既存アプリの内容を少し書き換えて新アプリとして作成したい場合に、パッケージ名が同じだとアプリ名を変えたりしても同じアプリとして認識され、既存アプリが存在した場合はそいつを上書きます。パッケージ名を変えれば大丈夫とのことなのですが、パッケージはたくさんあるし、手間を書けずにやる方法はないかと調べたメモです。
まずはやってみた
src内パッケージ名変更
これをあるだけ繰り返す。最低限Manifestファイル等からパス指定されてるものだけ変えればいいと思います。
gen内パッケージ名変更
Rファイルは自動生成なので別に新しく作らなくていいんだけど、リファクタリング機能を使っとかないと後でRを参照している箇所をチマチマ直すハメになります。
manifestタグのpackage指定を変える
- Manifestファイルを開く
- manifestタグ内、package=""と指定されている部分を新パッケージ名に書き換え
- 保存
- ダイアログが出る
- はい
layoutファイル内のパッケージ指定を変える
エラーも出てないし、問題なしと思い実行しましたが、強制終了を食らいました。manifestタグのpackage指定を変えてなかったりすると起きる現象ですが、何回見ても変えてあります。気まぐれにlayoutファイルを開くと警告が出ていました。原因は、自作クラスをレイアウトで配置する場合にパッケージから指定しますが、このパッケージが旧名になっていました。これを新しいものに変え実行すると既存アプリを上書きせずに、新しいアプリとして認識してくれました。Fragmentのclassプロパティにも注意が必要ですね。