ASとか

開発系の記事が多めです。タイトルのASはActionScriptの略です。

パッケージ名を変更して別アプリとして認識させる

はじめに

既存アプリの内容を少し書き換えて新アプリとして作成したい場合に、パッケージ名が同じだとアプリ名を変えたりしても同じアプリとして認識され、既存アプリが存在した場合はそいつを上書きます。パッケージ名を変えれば大丈夫とのことなのですが、パッケージはたくさんあるし、手間を書けずにやる方法はないかと調べたメモです。

まずはやってみた

src内パッケージ名変更
  1. src内のパッケージの上で右クリック
  2. リファクタリング->名前変更
  3. 新しい名前を入力
  4. 「参照を更新」チェックボックスをオン
  5. OK

これをあるだけ繰り返す。最低限Manifestファイル等からパス指定されてるものだけ変えればいいと思います。

gen内パッケージ名変更
  1. gen内のパッケージの上で右クリック
  2. リファクタリング->名前変更
  3. 新しい名前を入力
  4. 「参照を更新」チェックボックスをオン
  5. OK
  6. ダイアログが出る
  7. 継続

Rファイルは自動生成なので別に新しく作らなくていいんだけど、リファクタリング機能を使っとかないと後でRを参照している箇所をチマチマ直すハメになります。

manifestタグのpackage指定を変える
  1. Manifestファイルを開く
  2. manifestタグ内、package=""と指定されている部分を新パッケージ名に書き換え
  3. 保存
  4. ダイアログが出る
  5. はい

layoutファイル内のパッケージ指定を変える

エラーも出てないし、問題なしと思い実行しましたが、強制終了を食らいました。manifestタグのpackage指定を変えてなかったりすると起きる現象ですが、何回見ても変えてあります。気まぐれにlayoutファイルを開くと警告が出ていました。原因は、自作クラスをレイアウトで配置する場合にパッケージから指定しますが、このパッケージが旧名になっていました。これを新しいものに変え実行すると既存アプリを上書きせずに、新しいアプリとして認識してくれました。Fragmentのclassプロパティにも注意が必要ですね。