質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

3回答

3264閲覧

AndroidStudioプロジェクトでパッケージの変更

yrema

総合スコア286

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/12/07 09:30

タイトルの通りですが、
パッケージの変更をしたいのですが、
手動でやるとなるとエクスプローラからフォルダ名変更(階層変更)や複数ファイル置換可能なエディタで置換するしかないと思います。
これを自動で一発変換してくれるAndroidStdioの機能や外部ツールがあれば教えてください。

◆環境
Windows 10
Android Studio 2.3.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

お望みのことはリファクタリング機能でできます。

パッケージ名、クラス名、メソッド名、変数名等々の名前変更や階層変更を指定すると関連する情報を全て自動的に変更してくれるものです。

パッケージの名前(階層)変更についていえば、プロジェクトビューでパッケージを右クリックして

Refactor > Rename...

でできると思います。最近のちゃんとしたIDEには多分ついている気がするので「リファクタリング」というキーワードを覚えておくとよいと思います。


追記:回答コメントを拝見して気づいたこと

a.b.c => aa.bb.ccへのパッケージ変更ですが・・・AndroidStudioのプロジェクトビューはこういう感じになっていますね

(1) aの下にパッケージbしかなくbの下にもcしかない場合のプロジェクトビュー + a.b.c => package階層が一つのノードとして表示されるが・・・ (2) aの下に別のパッケージb2がありbの下に別のソースb.javaがある場合 + a + b + c <== (1)でのa.b.cはこのノードを指す + b.java + b2

(2)のケースではa, b, cをそれぞれ選択することができてRefactorでaをrenameしたりmoveしたりできますが(1)の状態ではa, bノードは表示されずcパッケージだけをa.b.cとして表示するという仕様です。ゆえにa.b.cをrenameしようとしても「cをどうrenameするか」という操作と見做されます。

パッケージのRefactoring(rename/move etc.)はあくまで一つのパッケージ階層に対してしか行えないのでそれを踏まえて操作を考えるというべきでした。

最初に戻ってa.b.c => aa.bb.ccにするなら最小でも3つの操作が必要だと思います。
(m1) aa.bbを新規に追加
(m2) a.b.cを選びRefactor>Moveでaa.bbへ移動
(m3) aa.bb.cをRefactor>Renameでaa.bb.ccへ変更

トップ階層のパッケージjp.co.company.facility => com.company.facilityに変更するといった場合も上記と同様の考え方でcompanyパッケージをjp.co=>comへ移動としたいのですが、そのままではcompanyパッケージを操作できないので

(m1) jp.coの下に何かのソースを追加
これも直接はできないので一旦jp.co.company.facilityの下にダミーのソースを追加してからそのソースをjp.coにMoveすると前述の(1)から(2)に表示が変わるのでcompanyパッケージの操作ができるようになります
(m2) comパッケージを追加
(m3) jp.co.companyをcomパッケージへ移動
表示上はcompanyノードが表示されているはずなのでそれを選びRefactor>Moveでcomの下へ移動する
(m4) ダミーのソースを削除

こんな手順になると思います。ポイントはあくまでRefactorにより「全ての整合性を取った状態でプロジェクト構造を変更する」ことですが、パッケージ階層の変更は複数のRefactor操作の組み合わせとする必要があることを踏まえ、操作手順を考えないといけないみたいです。

投稿2017/12/07 10:59

編集2017/12/15 06:16
KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yrema

2017/12/15 01:20

すみませんが、 [プロジェクトビューでパッケージを右クリックしてRefactor > Rename...] とのことですが、例えば jp.co.****.appname を そのように操作すると まず[Rename Package][Rename directory]のボタンが出てきますよね? そのどちらを押してもパッケージの最後、つまりappnameの部分を変更するウインドウしか出てこないのですが? やりたいことは jp.co.****.appname を com.aaa.bbb.appname にように変更したいです。
KSwordOfHaste

2017/12/15 05:25

なるほどそういうことですね、多分これはAndroid Studio(IntelliJ IDEA)の「くせ」のようなものだと思います。少し回答に追記してみます。
guest

0

https://mashmorgan.hatenablog.com/entry/2018/06/06/160823
こちらのページ、かなり参考になりました。

投稿2019/11/01 02:19

chirunote

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Refactor -> Move -> Move package to another package
で移動できないでしょうか?

投稿2017/12/15 03:04

ksatou

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問