androidでの画面遷移で「ActivityNotFoundException」のエラーでハマった。
androidで画面遷移するときにハマってなかなかできなかったのでメモ。画面遷移に関するサイトはいくつかあるんだけど、やってみたらなかなかうまくいかなかったので。インテントってのを使うってことはすぐわかったんだけど、その先がなかなか。
何回かやって毎回出たエラーがこれ。
android.content.ActivityNotFoundException: Unable to find explicit activity class {(パッケージ名)/(パッケージ名).(遷移先アクティビティ名)}; have you declared this activity in your AndroidManifest.xml?
マニフェストファイルにちゃんと遷移先の画面の指定してる?ってエラー。。いろいろ試してみて(2時間くらいかかった!画面遷移にこれだけの時間ハマってる人俺くらいなんじゃ。。。)下記の方法でうまくいきました。
まずマニフェストファイル。遷移先の画面(ここではFirstActivityに遷移することを想定)を
<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); } });