👻

[Android][kotlin]Androidプロジェクトのプロジェクト名を変更する方法

に公開

背景

githubに公開されてるコードってすごい有用だけど、プロジェクト名は変更したくなる。というか変更する。でいつも地味にメンドイのでその方法を残しておきます。

手順

1. settings.gradle.tks の rootProject.name を変更

これをするとAndroid Studioに表示されるプロジェクト名が分かるので一番変わった感がある。

settings.gradle.kts
rootProject.name = "XxxxProject"

2. build.gradle.kts(モジュールとアプリの両方)

プロジェクト名とパッケージ名が設定されているところを修正する。
※たぶんアプリレベルの方は修正するところはない。

モジュールレベルのbuild.gradle.ktsの修正点

settings.gradle.kts
-   namespace = "com.aaa.permissionsample"
+   namespace = "com.aaa.xxxxproject"

    defaultConfig {
-       applicationId = "com.aaa.permissionsample"
+       applicationId = "com.aaa.xxxxproject"

3. Theme名称の変更

app\src\main\res\配下の2つのthemes.xmlファイル

values\themes.xml
-   <style name="Base.Theme.PermissionSample" parent="Theme.Material3.DayNight.NoActionBar">
+   <style name="Base.Theme.XxxxProject" parent="Theme.Material3.DayNight.NoActionBar">
    </style>

-   <style name="Theme.AndKotPermissionSample2" parent="Base.Theme.PermissionSample" />
+   <style name="Theme.XxxxProject" parent="Base.Theme.XxxxProject" />
values-night\themes.xml
-   <style name="Base.Theme.AndKotPermissionSample2" parent="Theme.Material3.DayNight.NoActionBar">
+   <style name="Base.Theme.XxxxProject" parent="Theme.Material3.DayNight.NoActionBar">

4. AndroidManifest.xml

AndroidManifest.xml
    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
-       android:theme="@style/Theme.PermissionSample">
+       android:theme="@style/Theme.XxxxProject">

5. kotlinファイルのフォルダ構成とpackage名を変更

フォルダ構成変更前: src\main\java\com\aaa\permissionsample
フォルダ構成変更後: src\main\java\com\aaa\xxxxproject

全kotlinファイル
-package com.aaa.permissionsample
+package com.aaa.xxxxproject

6. jni c++を使っているなら

jni インターフェース関数の各関数名を修正。
<例>
修正前: JNIEXPORT jint JNICALL Java_com_aaa_permissionsample_VuforiaWrapperKt_initVideoTexture(JNIEnv *env, jclass clazz) {

修正後: JNIEXPORT jint JNICALL Java_com_aaa_xxxxproject_VuforiaWrapperKt_initVideoTexture(JNIEnv *env, jclass clazz) {

7. viewBindingの設定をしてるならimportの見直し

ActivityとFragmentで、viewBindingを使っているなら、importにクラスパスがあるはずなので修正。
<例>

ActivityとFragment
-import com.aaa.permissionsample.databinding.ActivityMainBinding
+import com.aaa.xxxxproject.databinding.ActivityMainBinding

8. navigationを使ってるならクラスパス修正

navigationを使ってるなら、ActivityとFragmentのクラスパスが変更になったので、修正。
<例>

navi.xml
-       android:name="com.aaa.permissionsample.MainActivity"
+       android:name="com.aaa.xxxxproject.MainActivity"

9. Android Studioのキャッシュクリアとクリーンビルド

Build → Clean Project
Build → Rebuild Project

以上。これで変更できるはず。
お役に立ちますように。。。

Discussion