2016/06/02

[android]Android Studioでプロジェクトを別のところで使う

いま、TwoSpinnersという、スピナーを2つ使ったAPIテスト用のプロジェクトを作っている。
実際に使うとしたら、これを別名でコピーして、Package名なんかも変更することだろう。

AndroidStudio 2.1.1(Windows10)でやってみる。


まず、コピー元のプロジェクトで、以下を削除しておく。

  • .gradle
  • build
  • app/build

.gradleは移動した後の方がよいのかな?
buildたちは、ファイルがたくさん入っているので、邪魔なだけだ。
あと、このあとで全検索するので、不要なファイルがあると邪魔なのだ。

 

別の場所にコピーして、フォルダ名を変更する。
ついでに、直下にあるxxx.imlファイルを削除する。
リネームしてしまえばよいのだろうが、.gitignoreにimlファイルが入っているので、きっと自動生成してくれるはず。

あと、忘れやすいけど、バージョン管理しているのなら管理ファイル(Gitなら.git)も削除しておこう。
隠し属性になっていて気付きにくいけどね。

 

フォルダ以下を、変更前の名前で全文検索する。
今回であれば「TwoSpinners」だ。
検索対象は「*.*」。全部だ。
今のところ、私の環境ではこれらのファイルが引っかかった。

  • .idea/.name
  • .idea/modules.xml
  • .idea/workspace.xml
  • app/app.iml
  • app/src/main/res/values/strings.xml

問題が無さそうであれば、新しい名前で置換していく。

app.imlは、同じルールで行けば自動生成してくれるはずだが、もう検索できてしまったので変更することにした。

 

さあ、Android Studioで開いてみよう!
・・・Unsupported Modules Detectedというエラーが出てきた。
が、Syncが終わるまで待っても、それ自体はエラーにならなかった。
プロジェクトを閉じて開き直すと表示されなかったので、たぶんimlファイルを削除していたせいじゃないだろうか。


あとは、Package名の変更。
名前だけならよいのだが、フォルダ階層の変更も発生するので、Refactor>Renameでは対応できなさそうだ。

ネットで検索すると、Refactor>Moveがよいらしい。
やってみると・・・、なるほど、これは「移動」だ。
フォルダがなければ作成してくれるし、参照しているPackage名なんかもRefactorするか確認してくれて、変更もするようなのだが、移動なのだ。

たとえば、今回だと「com.blogpost.hiro99ma.twospinners」というPackage名で、移動先を「jp.blogpost.hirokuma」とすると、全体としては「jp.blogpost.hirokuma.twospinners」というPackage名になる。
つまり、twospinnersを「jp.blogpost.hirokuma」に移動したのだ。

よって、一番最後のNamespace名(でよいのかな?)を変更したいのであれば、さらにRefactor>Renameをするとよいだろう。


ツールに全部任せるのは心配な気もするのだが、私くらいのAndroid/Javaスキルだったらツールでやってもらった方が間違いが少ないだろう。

いつかは「そんなのツールでやるより自分でやった方が安心だよ」と言えるくらいまでなりたいものだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。