2016-11-29 5 views
0

Bevor Sie downvote: Ich habe dies für Stunde + jetzt gegooglet und kann immer noch nicht verstehen, warum das nicht funktioniert. Ich folge the official docs.ActivityNotFoundException beim Öffnen einer anderen Aktivität mit Intent

Ich möchte eine andere Aktivität von meiner Hauptaktivität mit einer Absicht öffnen. Das ist meine Hauptaktivitätsklasse (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); 
    } 
} 

Und das ist Activity2.java:

public class Activity2 extends Activity { 

} 

Wenn ich die app laufen werde ich die Haupttätigkeit mit einem grauen Knopf. Wenn ich auf die Schaltfläche klicke, bekomme ich eine Ausnahme:

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? 

Warum bekomme ich die Ausnahme? Was ist hier falsch?

------------- edit1 ---------------

okay, erklärte ich die andere Aktivität im Manifest wie folgt aus:

<?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> 

... und die App funktioniert jetzt! Ich schaue mir gerade ein anderes funktionierendes Codebeispiel an, das mehrere Activity-s hat, die nicht im Manifest deklariert sind und immer noch funktionieren. Was ist los?!

------------- edit2 ---------------

Ahh ich es herausgefunden. Das Codebeispiel betrachtete ich enthalten mehr Fragment es, nicht Activity es

+0

die Nachricht von der Ausnahme lesen; "Haben Sie diese Aktivität in Ihrer AndroidManifest.xml deklariert?" – Bryan

+0

Ich habe das gelesen. Ich weiß, dass Sie im Manifest – gibs

+1

Ja keine Nicht-Hauptaktivität-s deklarieren müssen. Jeder einzelne. – Bryan

Antwort

3

Sie müssen die Activity in Ihrer AndroidManifest.xml Datei deklarieren:

<activity android:name=".Activity2"/> 
Verwandte Themen