🏷️

【Android】cloneアプリのapplicationIdなどを変更して別アプリとして流用する

に公開

Android アプリ開発において、既存プロジェクトやテンプレートプロジェクトを clone して流用したい場面があると思います。
または、適当に applicationId を設定したものの、後から正式なものに変更したい。などの場合もあるあるかと思います。

そんな場合の applicationId や Project 名などを変更する方法についてざっとまとめてみました。


検証環境

  • Android Studio Narwhal Feature Drop | 2025.1.2
  • 検証前の applicationId は com.example.test.app と仮定します。

※ 普段 VSCode を主に使用しています。AndroidStudio の操作や表示に慣れておらず、VSCode を併用した記載となります。
慣れている方は AndroidStudio だけでも問題無いと思います。


やること

0. ディレクトリ表示設定の変更(任意)

添付の通り設定からCompact Middle Packagesのチェックを外す。
チェックを外すことで、VSCode などのエディタで見慣れたディレクトリ構造の表示となります。

※ 見慣れた使いやすい形式で各自設定をお願いします。

チェック有り チェック無し


1. applicationId

まずは新しい applicationId を考えましょう。

applicationId とは、アプリを識別するための一意の ID です。

ユーザーが直接目にすることは基本は無い設定値とはなりますが、Google Play ストアでアプリを公開する際の重要な設定値となります。

今回は新たに jp.co.sample.newApp とします。

VSCode でapp/build.gradle.ktsを開いて変更します。

app/build.gradle.kts
android {
    // ===== 省略 =====
    defaultConfig {
-        applicationId = "com.example.test.app"
+        applicationId = "jp.co.sample.newApp"
    // ====== 省略 =====
    }


2. namespace

applicationIdの変更に伴い、namespaceの値も変更します。

namespaceについてはドキュメントを見てもややこしいところなので、ざっくりまとめると、
自動生成されるコードを、どこに配置するかを指定する設定値です
この値によって自動生成されるクラスのパッケージ構造(ディレクトリ構造)が決まります。

こちらの設定値も、ユーザーが直接目にすることは基本無い設定値となります。

通常はapplicationIdと同じ値にすることが推奨されています。
新規プロジェクト作成時も同じ値が設定されます。

なので今回も同じ値に変更します。

VSCode でapp/build.gradle.ktsを開いて変更します。

app/build.gradle.kts
android {
-    namespace = "com.example.test.app"
+    namespace = "jp.co.sample.newApp"
    // ===== 省略 =====

namespaceについての詳細については以下参照ください。
https://developer.android.com/build/configure-app-module?hl=ja
https://medium.com/@MahabubKarim/understanding-namespace-and-applicationid-in-android-gradle-718c685db3d2


3. rootProject.name

続いてrootProject.nameを変更します。

rootProject.nameとは、開発環境(Android Studio や Gradle)内でプロジェクトを識別するための名前です。
アプリ自体の動作や配布には影響しない内部的な設定値です。(具体的には以下)

  • namespace
  • applicationId
  • app_name

Android Studio のウィンドウ上部に表示されるプロジェクト名にもなります。

必ずapplicationIdと同じ値にする必要はありませんが、たいたい似たような名前にすることが多いかと思います。

VSCode でsettings.gradle.ktsを開き、今回はSampleNewAppとして変更します。

settings.gradle.kts
- rootProject.name = "com-example-testApp"
+ rootProject.name = "SampleNewApp"


4. アプリ名(app_name)

Android 端末にインストールされたアプリアイコンの下に表示されるアプリ名を変更します。
res/values/strings.xmlに定義されているapp_nameを変更します。

string.xml
-    <string name="app_name">com-example-testApp</string>
+    <string name="app_name">TestApp</string>


5. 自動生成ファイルなどの削除

このままだと上記の設定値の変更が上手く反映されない可能性が高いので、キャッシュファイルなどの自動生成ファイルを一度削除します。

削除するフォルダは、.idea/(IDE 設定類)、.gradle/(キャッシュ類) です。

上記2つのファイルを VSCode 上から削除します。

ここでようやく AndroidStudio を起動します。

※ 赤線のように、ローカルのフォルダ名とrootProject.nameがそれぞれ表示されます。
※ 上記の「.フォルダ類」を消さないとrootProject.nameなどが反映されない場合があります。


6. ディレクトリ構造の修正

namespaceにあわせて、アプリのディレクトリ構造を修正します。
こちらの修正は AndroidStudio 上の機能で修正したいと思います。

変更したいフォルダを右クリックで、Rename…を選択。
All Directoriesを選択して適宜命名を変更します。
これで紐づく箇所を自動で変更してくれます。

- - -

以降、配下のフォルダについても、同様に namespace にあわせてフォルダ名を変更します。
こちらの対応で、一通りの変更対応は完了です。

before after

https://developer.android.com/build/configure-app-module?hl=ja
https://kotlinlang.org/docs/coding-conventions.html#source-code-organization


7. ドキュメントファイルの修正 + 修正漏れチェック

上記の Rename 処理は、.md ファイルなどのドキュメントファイル内の記載は変更してくれません。(import などのひも付きとかは無いので。)
また、同様に他の設定ファイルについても、漏れがないか確認します。

VSCode の検索で、変更前の applicationId や rootProject.name、ディレクトリ構造が記載されている箇所を検索して、必要に応じて修正・置換します。

検索例:

  • com.example.test.app
  • com/example/test/app
  • etc.


8. ビルド・実行確認

ここまできたら、最後に build して実行してみましょう。
正常に動作すれば完了です。


備考

他記事や過去記事でよく目にする package名 について。

以前は、AndroidManifest.xmlにて手動でpackageプロパティを指定する必要がありました。
しかし、「AGP(Android Gradle Plugin): 8.0」以降、手動設定が廃止され、ビルド後にapplicationIdが自動でpackageに設定されるようになったみたいです。

なので、大まかには 「package名applicationId」 という認識で良いかと思っています。

https://developer.android.com/build/configure-app-module
https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes

GitHubで編集を提案
NCDCエンジニアブログ

Discussion