30代で東京→名古屋にUターン転職しました。

30代既婚男子。子供2人。日経先物トレードとかプログラミングとか英語とか

androidでの画面遷移で「ActivityNotFoundException」のエラーでハマった。

androidで画面遷移するときにハマってなかなかできなかったのでメモ。画面遷移に関するサイトはいくつかあるんだけど、やってみたらなかなかうまくいかなかったので。インテントってのを使うってことはすぐわかったんだけど、その先がなかなか。


何回かやって毎回出たエラーがこれ。



android.content.ActivityNotFoundException: Unable to find explicit activity class {(パッケージ名)/(パッケージ名).(遷移先アクティビティ名)}; have you declared this activity in your AndroidManifest.xml?



マニフェストファイルにちゃんと遷移先の画面の指定してる?ってエラー。。いろいろ試してみて(2時間くらいかかった!画面遷移にこれだけの時間ハマってる人俺くらいなんじゃ。。。)下記の方法でうまくいきました。




まずマニフェストファイル。遷移先の画面(ここではFirstActivityに遷移することを想定)を と定義する。(遷移先のActivity名の前に「.」をつけるのを忘れないこと)

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

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".FirstActivity">
        </activity>


で、画面遷移元のプログラム。画面遷移先を指定するときにパッケージ名も指定する必要がある。

       toFirst.setOnClickListener(new View.OnClickListener() {
            //ボタン押下
            @Override
            public void onClick(View v) {
                // インテントの生成
                Intent intent = new Intent(MainActivity.this,package_xxxxx.FirstActivity.class);
                // FirstActivity の起動
                startActivity(intent);
            }
        });