【Kotlin】packageの名前を変更したらRunできなくなった件

## はじめに
<br>


初心者kotlin週末エンジニアがアプリケーションを作成〜リリースする過程で
発生した事象を誰かの役に立てばいいな（未来の私の役に立てば、、）という意味を込めて、記事にしています

## 今回発生した事象とかを語る
<br>

### 1.　最初はただ、実機テストをしたかっただけ。。
作成しているアプリケーションを「Google Play Console」にアップロードして、実機にインストールしてテストをしようと思い、アプリケーション（ABB形式）をアップロードしたところ、
![スクリーンショット 2024-12-04 17.28.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3760174/5b7a9a4a-3d41-6db3-6859-2b976a07a056.png)

「You need to use a different package name because "com.example" is restricted.」と怒られてしまいました（かなしい）

どうやら「package name」というものに、com.exampleは使ってはいけないようです

### 2.　じゃあpackage nameを変えようじゃないか
まずは、package nameってなんだ？と思い、調べてみると
> すべての Android アプリには、「com.example.myapp」など、Java または Kotlin パッケージ名に似た一意のアプリケーション ID があります。この ID によってアプリがデバイスと Google Play ストアで一意に識別されます。

らしいです。アプリをGoogle側で識別する情報？ってことですね。

<br>

- AndroidManifestの編集

    よし、なんとなくわかった！では変更！ということで、
    package nameが定義されている「AndroidManifest.xml」を編集しました
    
    - 編集前（抜粋）
    ````
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.example.MyApplication2">
        <uses-permission />
            <application
            android:name="com.example.MyApplication2">
            <activity
                android:name="com.example.MyApplication2.MainActivity"
            </activity>
        </application>
    </manifest>
    
    
    ````
    
    - 編集後（抜粋）
    
    ````
    
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.miwaihnt.ParentEye">
        <uses-permission />
            <application
            android:name="com.miwaihnt.ParentEye.MyApp">
            <activity
                android:name="com.miwaihnt.ParentEye.MainActivity"
            </activity>
        </application>
    </manifest>
    
    
    ````

<br>

- build.gradleの編集

    gradleファイルも編集しました(編集したらsync忘れずに)


    - 編集前
   
    ```
    android {
    namespace = "com.example.Myapplication2"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.Myapplication"
        minSdk = 32
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

    ```



    - 編集後
    ```
    android {
    namespace = "com.miwaihnt.ParentEye"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.miwaihnt.ParentEye"
        minSdk = 32
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

    ```


<br>

- 各ファイルの編集（Rename)

    各ファイルも「package name」が埋め込まれているので、置換しました。
    > app > 右クリック > Replace in Files

    ![スクリーンショット 2024-12-04 18.03.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3760174/943d9cc3-d965-a986-b379-a934dc2a0acb.png)


### 3. 修正したからRunしよう！⇨あれ、エラー（Σ੧(❛□❛✿)
Run！とMainActivityを起動しようとすると、怪しげなエラーで起動できず。
> Error running 'MainActivity': com.example.myapplication2.MainActivity is not an Activity subclass or alias


## 何が問題だったのか

<br>

ファイル修正漏れはないはずだし、原因がわからん。と調べていたところ、
結論、「Run/Debug Configuration」という設定が原因でした

私が理解していなかったのですが、AndroidStudioの実行方法は
「Run/Debug Configuration」という機能を用いて行うっているらしいです。
この「Run/Debug Configuration」の設定が修正前の「com.example.myapplication2」アクティビティを探しにいくように設定されていたため、そんなものはない！！と怒られていたようです。

*そこで、Launch Optionを以下で修正することで正常に起動ができました！*
- 修正前：「com.example.myapplication2」
- 修正後：Default Activity（AndoroidManifestで規定されている内容）


- Run/Debug Configuration画面
![スクリーンショット 2024-12-04 18.22.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3760174/a172103f-2c3c-4e08-e4d5-65760581e55f.png)

- Launch Optionに「com.example.myapplication2」が指定されていた
![スクリーンショット 2024-12-04 18.24.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3760174/d4724440-e960-4766-408a-4a93ee14b760.png)

[Run/Debug Configurationの参考記事](https://gihyo.jp/dev/serial/01/android_studio/0038)

## おわりに
少しでも誰かの役に立つ記事になればうれしいです