2016-11-29 2 views
0

あなたがダウンボートする前に:私は今この時間を+ Googleで検索しましたが、これがなぜ機能していないのか理解できません。私はthe official docsに従っています。ActivityNotFoundExceptionインテントで別のアクティビティを開くとき

主なアクティビティから別のアクティビティをインテントで開きたいとします。 これは私のメインのActivityクラス(MainActivity.java)です:

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     LinearLayout l = new LinearLayout(this); 
     Button b = new Button(this); 
     b.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent goToActivity2 = new Intent(MainActivity.this, Activity2.class); 
       MainActivity.this.startActivity(goToActivity2); 
      } 
     }); 
     l.addView(b); 

     this.setContentView(l); 
    } 
} 

そして、これはActivity2.java次のとおりです。

public class Activity2 extends Activity { 

} 

私はアプリを実行した場合、私はグレーのボタンとの主な活動が表示されます。ボタンをクリックすると、例外が発生します。

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.testing.kaarelp.androidtest2/com.testing.kaarelp.androidtest2.Activity2}; have you declared this activity in your AndroidManifest.xml? 

例外が発生するのはなぜですか?ここで何が間違っていますか?

------------- EDIT1 ---------------

は大丈夫私はこのようなマニフェスト内の他の活動を宣言した:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.testing.kaarelp.androidtest2"> 

    <application> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".Activity2" /> 
    </application> 

</manifest> 

...アプリが今すぐ動作します!しかし、私はマニフェストで宣言されていない複数のActivity-sを持っていて、それでも動作する別のコード例を見ています。何が起こっている?!

------------- EDIT2 ---------------

ああ、私はそれを考え出しました。私は含まれる複数のFragment -sではなく、あなたがあなたのAndroidManifest.xmlファイル内Activity宣言しなければなりませんActivity -s

+0

は例外からのメッセージを読みます。 "あなたのAndroidManifest.xmlでこのアクティビティを宣言しましたか?" – Bryan

+0

私はそれを読んだ。マニフェストで非メインアクティビティを宣言する必要はありません。 – gibs

+1

はい。一人一人。 – Bryan

答えて

3

を見ていたコード例:

<activity android:name=".Activity2"/> 
関連する問題