Androidアプリケーションのパッケージ名を変更する方法


133

キーストアが破損しているため、Androidマーケットでアプリの名前を変更して再送信する必要があります。ただし、マニフェストやファイル全体でパッケージ名を編集しようとすると、大量のエラーが発生します。

アプリケーション名を変更する適切な方法は何ですか?


3
ありがたいことに、彼らは2010年以来、「魔法、変更パッケージ名ボタン」を追加- - @Marcバーンスタインの答えを参照stackoverflow.com/a/4025633/383414
リチャード・ルMesurier

リチャード・レ...ありがとう
DoruChidean


3年前にこれが尋ねられたとき、複製であることは難しい...
Ryan Ternier

回答:


102

Eclipseを使用している場合は、Androidの開発者サイトからこれらの手順を試すことができます。これらはGestureBuilderサンプル専用ですが、私が知る限り、どのアプリケーションにも適用できます。

これは、Eclipseでこれを行う方法です。

  1. パッケージ名(src/com.android.gesture.builder)を右クリックします。
  2. 「リファクタリング」>「名前を変更」を選択し、名前を、たとえばに変更し com.android.gestureNEW.builderます。
  3. マニフェストファイルを開きます。<manifest>タグ内で、 パッケージ名をに変更します com.android.gestureNEW.builder
  4. 2つのアクティビティファイルをそれぞれ開き、Ctrl-Shift-Oを実行して不足しているインポートパッケージを追加し、各ファイルを保存します。エミュレータでGestureBuilderアプリケーションを実行します。

また、ファイル内のパッケージへの参照とともに、パッケージ自体の名前も忘れずに変更してください。Eclipseでは、左側のファイルエクスプローラーウィンドウ/ツリービューでパッケージの名前を確認できます。私の経験では、Eclipseは少し微妙で信頼できない場合があります(たとえば、古いパッケージ名への参照が残っているなど)。


これはおそらくそれを行うための最良の方法です。不思議なパッケージ名の変更ボタンはありません。
ブラインドスタッフ

13
はいあります。@Marc Bernsteinの回答を参照してください。
Mark Phillip、

元の質問者がJavaパッケージ名を変更する必要もないと思います。マークの答えが受け入れられるべきです。
mpellegr 2013

最初のステップは「右クリック」ではなく、メニューの「リファクタリング」を選択する必要があります。
2013

そしてapp_name、res-> values => strings.xmlで変更する必要があるかもしれません
Deqing

302

Eclipseでパッケージ名を簡単に変更する方法があります。プロジェクトを右クリックし、Androidツールまで下にスクロールして、[アプリケーションパッケージの名前変更]をクリックします。


2
Eldarを試したところ、うまくいきましたが、きっとうまくいくと思います。
アレンギングリッチ

4
これは正解ですが、現在のADTは壊れており、Rクラスへのすべての参照を壊します。したがって、個々のファイルをクリックし、「ctrl-shift-o」(またはMacの場合はcmd-shift-o)を実行して、新しいパッケージ名のRを選択する必要があります(android.Rは選択しないでください。 )、保存をクリックします。...そして、個々のファイルごとに繰り返します:(
アダム

ちょうど私たちの生活をより容易にするために@Adam、プロジェクトおよび使用はCtrl + Shift + Oをクリックして、それはすべてのクラス/ファイルにインポートされた参照が更新されます:Dを
ブレイズ多摩

ばかげたストアキーを紛失し、アプリケーションを再公開する必要があったため、これは私の命を救っただけです。
Teoman Shipahi 2014年

3
各ファイルの上部で宣言されているファイルパッケージ名が、新しいパッケージやそれらが含まれているフォルダーと一致しないことがわかりました。古いパッケージ名がまだ残っているソースフォルダーを右クリックできます(少なくとも私の場合は常にそうです)。 「リファクタリング」を選択してから「名前を変更」して、新しいパッケージに名前を変更します。eclipseは、最初に行う必要があるように、フォルダーと各ファイルのパッケージ宣言の名前を新しいパッケージ名に変更します。
Androidcoder、2014

52

Eclipseでこれを行う方法は次のとおりです。

  1. パッケージ名(src/com.android.gesture.builder)を右クリックします。
  2. Refactor > Rename名前を選択して、たとえばに変更し com.android.gestureNEW.builderます。
  3. マニフェストファイルを開きます。<manifest>タグ内で、パッケージ名をに変更しますcom.android.gestureNEW.builder
  4. 2つのそれぞれ開き、ActivityファイルをしてくださいCtrl+ Shift+をO、各ファイルの保存、不足しているインポートパッケージを追加します。
  5. GestureBuilderエミュレータでアプリケーションを実行します。

投稿へのリンク

プロジェクトを右クリックして超簡単な方法で更新 ... ここに画像の説明を入力してください


2
これを行うにはかなり素晴らしい方法!
デュード

2
より簡単なソリューション。これは受け入れられるはずでした;)
Nomade

12

ではAndroidのメーカー、はっきり言って、あなたが使用する必要があり、パッケージ名を変更することにより、right-clickingパッケージ名をproject structure -> Refactor -> Rename...

次に、ディレクトリまたはパッケージの名前を変更するオプションを提供します。パッケージを選択します。ディレクトリはこれに従う必要があります。新しいパッケージ名を入力して、「リファクタリング」をクリックします。すべてのインポートが変更され、冗長なインポートが削除されます。コメントや文字列などで修正することもできます。

最後に、それに応じてAndroidManifest.xmlのパッケージ名を上部に向かって変更します。そうしないと、R.whateverについて不平を言うエラーがどこでも発生します。

別の非常に便利なソリューション

まず、目的の名前のby right clicking on thejavaフォルダーを使用して新しいパッケージを作成します->新規-> パッケージ。`

次に、すべてのクラスを選択して新しいパッケージにドラッグします。AndroidStudioはどこでもパッケージ名をリファクタリングします。

その後:アプリのbuild.gradle追加/編集で、新しいアプリケーションIDを使用します。つまり(com.a.bc私の場合):

defaultConfig {
    applicationId "com.a.bc"
    minSdkVersion 13
    targetSdkVersion 19
}

元の投稿とその他のコメントはこちら


奇妙なことに、私がそれをするとき、それはディレクトリ/パッケージの選択を与えません... "モジュール名"だけを与えます...
Fattie

1
ルートディレクトリを右クリックすると、今でも同じことが言えます。少なくとも私にとって、それは実際のパッケージ名ではありません。パッケージ名がcom.a.bcの場合、ルートディレクトリの下にbcと呼ばれるディレクトリがあるはずです。ここでさまざまなオプションを利用できます。現在、ディレクトリまたはモジュールを取得しています。モジュールを試してください。何かが壊れた場合は、いつでも元に戻すことができます(Ctrl + zで実行できます)。
2014年

ありがとう..たわごと、あなたは「.idea」ディレクトリまたは「app」ディレクトリを意味しますか?説明用のQを投稿しました。.. stackoverflow.com/questions/23786361/… ああ..「app」フォルダをクリックすると、「Select refactoring directory / module」が表示されます... hoy caramba!
Fattie

上@JoeBlow右クリックしpackageたフォルダの下にjava
アブShumon

「正直なところ、使用すべきAndroid Studio」質問は2010年に行われたものであり、ASは2013年まで発表されなかっただけでなく、安定したビルド(2014)としてリリースされたことは覚えておいてください。確かに、今日のユーザー ASを使用する必要があります。:-)
LarsH 2019年

8

Eclipseなし:

  1. AndroidManifext.xmlのパッケージ名とアクティビティ名を変更し、それが.xmlファイルに表示される他の場所(カスタムビュー名など)を変更します。

  2. すべてのソースファイルでパッケージインポートステートメントを更新する

  3. パッケージ名と一致するようにすべてのフォルダーの名前を変更します。フォルダーの場所:
    a。ビン/クラス
    b。ジェネレーション
    c。src

  4. build.xmlのプロジェクト名を更新します(または、apkの名前は変更されません)

  5. bin / classes / com / example / myapp /にあるすべての.classファイルを削除します(この手順をスキップすると、ビルド中にファイルが書き直されず、dexが「クラス名がパスと一致しない」エラーの処理に多くのトラブルを引き起こします

  6. gen / com / example / myapp / BuildConfig.javaを削除します(ステップ3aでBuildConfig.classを削除してもdexがこのパスを更新しなかった理由はわかりませんが、BuildConfig.javaを削除するまではgen /を再作成し続けましたcom / oldapp_example / oldappおよびBuildConfig.classをそこに配置します。同じ場所にあるR.javaにこの問題がない理由はわかりません。BuildConfig.javaがプリコンパイルで自動生成されているのではないかと思いますが、R.javaではありません)

上記の6つのステップは、パッケージ名を変更してビルドを成功させるために私が行ったものです*。パスを更新するためのdexコマンドを介して、またはプロジェクトのルートディレクトリにあるclasses.dex.dを編集することによって、手順5と6を処理するより良い方法があるかもしれません。私はdexに慣れていないか、classes.dex.dを削除または編集しても問題ないので、ビルドで再生成されることがわかっている.classファイルを削除する方法を選びました。次に、classes.dex.dをチェックして、更新する必要があるものを確認しました。

*ビルドにエラーや警告は残っていません。dexとapkbuilderはどちらも「削除されたターゲットファイルが見つかりました」と表示され、そのファイルに関する詳細はありません。これがすべてのビルドで表示されるかどうか、パッケージ名を変更する前にあったかどうか、または私の削除の結果であり、ステップが欠落しているかどうかはわかりません。


私はあなたと同じように名前変更を解決しましたが、単純化して、binフォルダーとgenフォルダーを削除しました。また、非表示のファイル.projectを変更するまで、名前を変更したプロジェクトをEclipseにインポートできませんでした。<name>の下に古いプロジェクト名がありました
Jose_GD

6

次の手順を実行します:-

  • プロジェクトを右クリックします。
  • Androidツールに移動します。
  • Rename Application Packageをクリックします。
  • アプリケーションパッケージ名を変更します。

完了


1
これは機能しますが、ベースのsrcフォルダパッケージ名もリファクタリングする必要があります。
ashishduh 2013

6

Android Studio 1.3でこれを行う最速の方法

  1. でパッケージ名を変更します manifest
  2. に移動してModule Settings[F4]-> FlavorsApplication Id同じ名前を書き込みます。
  3. その名前で新しいパッケージを作成します。 [right-click-> new-> package]
  4. プロジェクトのすべてのJavaファイルを選択して、次に進みます [Right-click-> Refactor-> Move-> {Select package}-> Refactor]

PSこの順序に従わない場合、すべてのJavaファイルを1つずつ変更して、新しいインポートと一連のコンパイル時エラーが発生する可能性があるため、順序は非常に重要です。


1
この方法では、Rはリファクタリングによって変更されません。したがって、com.app.myapp.Rをインポートしても新しいパッケージ名に変更されず、1つずつ取得する必要があります...
OWADVL

@ OWADVL、Rはファイルを新しいパッケージに移動すると自動的に変更され、Android Studioは.javaファイルを移動すると自動的に再構築を実行します。私は毎日これを行っています。この順序を守っている限り、.javaファイルは一切変更しません。手動
Movsar Bekaev

しかし、Eclipseでは、すべてのコードのパッケージを変更せずに、アプリのパッケージIDを変更できました。ウィザードは、BuildConfig&R参照の名前を変更します。同じことはASには存在しないことに戸惑っています。
トム、

5

パッケージ名の変更はお尻の痛みです。方法は人によって異なるようです。私のソリューションは迅速でエラーがありません。Eclipseのクリーニングやリセットは必要ないようです。

  1. パッケージ名を右クリックし、[屈折]> [名前の変更]をクリックします。
  2. プロジェクト名Android tools> Rename Application Packageを右クリックします。
  3. 前の手順で変更されていないパッケージ名をマニフェストに手動で設定します。

3

Bernsteinにはメソッドがあり、Eclipseツールの「アプリケーションパッケージの名前を変更」を使用します。事後のクリーンアップも必要になる場合があります。また、プロジェクトに変更を加えると、Eclipseは時々追跡を失います。([プロジェクト]メニューの)[クリーンプロジェクト]ツールを使用する必要がある場合があります。それが機能しない場合は、Eclipseを閉じて再起動する必要があります。Voo-dooソリューションですが、Eclipseもそうです。


3

最も簡単な解決策は、Regexxerを使用して "com.package.name"を "com.newpackage.name"に置き換え、ディレクトリの名前を適切に変更することでした。超簡単、超高速。


3
  1. 最初に、マニフェストファイルのパッケージ名を変更します。
  2. リファクタリング> srcフォルダ内のパッケージの名前を変更してチェックマークを付けるrename subpackages
  3. これですべて完了です。

Marc BernsteinのAndroid Tools-> Rename Application Packageを使用してみましたが、エラーが発生しました。これはより簡単でしたが、変更後にいくつかの修正が
必要でした

2

Eclipseを使用していないユーザーのための別の解決策もあります。AndroidManifest.xmlの<manifest>タグのパッケージ属性を変更して、使用されている古いパッケージ名を新しいパッケージ名に置き換えます。注:プロジェクト内のすべての関連するインポートステートメントと関連フォルダーも手動で調整する必要があります。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="new.package.name"
    .....
</manifest>

1

代替:

  1. AndroidManifest.xmlを開きます
  2. マニフェストタグ内のpackage = "NEW NAME"を変更します。

1
  1. プロジェクトを右クリック> Androidツール>アプリケーションパッケージの名前を変更

  2. srcに移動し、メインパッケージを右クリック>リファクタリング>名前の変更

  3. マニフェストファイルに移動し、パッケージ名を変更します。


1

私はすべてのソリューションを試して数時間を失った。確かに、問題は私のコードにあります-apkは開始しますが、さまざまなクラスやアクティビティを操作するときにいくつかのエラーが発生します。

私のプロジェクトで作業する唯一の方法:

  1. 名前を変更-ファイル/名前を変更してすべてのチェックボックスをオンにします
  2. 名前が変更されていない場所を確認します。以前の名前のレイアウトの1つがまだtools:context = "。にありました。
  3. 新しいワークスペースを作成する
  4. プロジェクトを新しいワークスペースにインポートする

私にとってそれは機能しますが、解決策のみです。


1

したがって、Android(Studio)プラグインでIntelliJを使用することは次のとおりでした:AndroidManifest.xml一番上に移動し、右クリックしてパッケージ名を変更します-> Refactor-> rename。私たちの当時のパッケージ名には4つの部分がa.b.c.dあり、新しい部分のみでしたa.b.c。最初の3つの名前を変更しました。次に、生成されたソースのディレクトリ(app\build\generated\source\r\development\debug\a\b\c\d)にR移動し、クラスを右クリックして、Refactor-> Move [d]して1つ上のパッケージに移動しました。同じBuildConfigの中でapp\build\generated\source\buildConfig\development\debug\a\b\c\d

リファクタリング->移動を使用して、IntelliJはBuildConfigおよびへのすべての参照を更新しますR

最後に、見つけたgradle.buildで見つけたすべてのapplicationId [s]を更新しました。Clean Project、Make and Rebuild Projectをクリックします。携帯電話からアプリを削除し、「再生」を押しました。すべてうまくいったので、リファクタリングは簡単で非常に高速でした。


1

Android Studio 1.2.2に変更com.example.myappする場合org.mydomain.mynewapp は、次のスクリーンショットに示すように、各ディレクトリの手順に従ってください。プレビューオプションが表示されるので、変更を加える前にプレビューできます。

に移動しRefactor -> Renameて、新しい名前を付けます。たとえば、com、example、myappのように、フォルダーごとにそれを行う必要があります。インポートを自動的に更新するので、心配する必要はありません。 ここに画像の説明を入力してください

また、build.gradle自動更新されないファイルも更新してください。

defaultConfig {
        applicationId "org.mydomain.mynewapp" //update the new package name here
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

その後、それをsync実行するように要求します。その後、すべてがうまくいきます。この後、APKをgoogleストアにアップロードできます。アプリに署名してストアにアップロードしたことを確認してください。


0
  1. Androidスタジオのプロジェクトパネルに、「クリックしてください」という歯車アイコンがあります。
  2. コンパクトな空の中間パッケージのチェックを外します
  3. これで、パッケージディレクトリが個別のディレクトリに分割されました。
  4. 名前を変更するディレクトリを選択します。
  5. その特定のディレクトリを右クリックします。
  6. リファクタリングを選択し、オプションの名前を変更します。
  7. ダイアログボックスが開いているので、名前を変更します。
  8. 新しい名前を入力したら、[リファクタリング]をクリックします。
  9. 次に、下部にある[リファクタリングを実行]をクリックします。
  10. 次に、android studioがすべての変更を更新します。
  11. 次にbuild.gradleファイルを開き、applicationIdを更新して同期します。
  12. 次に、マニフェストファイルに移動し、パッケージの名前を変更します。
  13. プロジェクトを再構築します。
  14. 完了です:)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.