android.content.ActivityNotFoundException: Unable to find explicit activity class

  • Hallo Leute,


    frohe Weihnachten an alle. Ich bin neu hier im Forum und neu bei der Android Entwicklung. Android Entwicklung mache ich als Hobby. Beruflich bin ich Entwickler in C#. Folgendes Problem hab ich:


    Ich habe 3 activitys. Von der Main kann ich auf die zweite wechseln. Allerdings von der zweiten auf die dritte geht irgendwie nicht. Mir fällt auch kein Fehler auf. Kann mir da jemand helfen? Nach dem unten eingefügten Manifest stehen die Fehlermeldungen



    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.svwinnenden"
    android:versionCode="1"
    android:versionName="1.0" >


    <uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="21" />


    <uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE"
    android:maxSdkVersion="21" />
    <uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="21" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>


    <application
    android:allowBackup="true"
    android:icon="@drawable/sv_winnenden"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <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=".SecActivity"
    android:label="@string/title_activity_sec">
    <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    </intent-filter>
    </activity>
    <activity
    android:name=".Profile"
    android:label="@string/title_activity_profile" >
    </activity>
    </application>


    </manifest>



    hier ist der Aufruf der Activity. Ich versuche von der zweiten Activity die dritte Aufzurufen. Die zweite Activity SecActivity konnte ich von der Main starten. Erste Fehlermeldung ist die Security Exception


    ActivityManager.START_PERMISSION_DENIED:
    throw new Security Exception("Not allowed to start activity" + intent)


    dann kommt die zweite Fehlermeldung


    android.content.ActivitynotFoundException: Unable to find explicit activity class; have you declared this activity
    in your AndroidManifest.xml


    package com.example.svwinnenden;


    import java.io.File;
    import java.io.IOException;


    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Typeface;
    import android.os.Bundle;
    import android.os.Environment;
    import android.util.Log;
    import android.util.TypedValue;
    import android.view.Gravity;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.TableLayout;
    import android.widget.TableRow;
    import android.widget.TextView;


    public class SecActivity extends Activity
    {
    public File file;
    public File sdCard = Environment.getExternalStorageDirectory();
    public Intent intent = new Intent(this, Profile.class);


    //Create an anonymous implementation of OnClickListener
    private OnClickListener selectedPlayers = new OnClickListener() {
    @Override
    public void onClick(View v)
    {
    // TODO Auto-generated method stub
    v.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
    startActivity(intent);
    }
    };
    }

  • naja mir fällt nur auf das du zweimal den intent filter Main verwendest, keine ahnung ob das einen solchen fehler verursacht.


    Es ist gerade spät und ich hab nun nicht genau drüber geschaut.
    Falls es nicht die lösung war schau ich morgen im laufe des tages nochmal.

  • Hallo ChampS,


    nee ich hab das Filter nachher eingesetzt. Das funktioniert auch nicht ohne das. Der Witz ist ich poste mal einen anderen Versuch von mir. Da klappt es auf einmal ohne Fehlermeldung. Und ehrlich gesagt, fällt mir da kein unterschied zum anderen Code auf.


    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.svwinnenden"
    android:versionCode="1"
    android:versionName="1.0" >


    <uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="18" />


    <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <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=".SecActivity"
    android:label="@string/title_activity_sec" >
    </activity>
    <activity
    android:name=".ThirdActivity"
    android:label="@string/title_activity_third" >
    </activity>
    </application>


    </manifest>



    Aufruf von meiner Main auf die zweite Activity tut.





    Aufruf von meiner secActivity auf die ThirdActivity tut auch.



    Das Problem ist, ich kann mein anderes Programm so nicht fortsetzen :/

  • Bei meiner - wenn auch extrem einfach gehaltenen - Einkaufslisten-App (xD) verwende ich für den Aufruf von anderen Activities startActivityForResult. Vielleicht kann dir das auch noch weiterhelfen.


    Da habe ich z.B. meine ShoplistActivity.java, in der in etwa Folgendes steht:


    Java
    [...]
    
    
    Intent intent = new Intent(ShoplistActivity.this, ItemActivity.class);
    
    
    startActivityForResult(intent, 0);
    
    
    [...]


    Nachdem ein Objekt in der Liste, angeklickt wird, wird die onItemClick-Methode ausgeführt, in der der oben gezeigte Ausschnitt enthalten ist.
    In der folgenden ItemActivity.java steht dann in etwa das:


    Java
    [...]
    
    
    Intent intent = new Intent(ItemActivity.this, ItemChangeActivity.class);
    
    
    startActivityForResult(intent, 0);
    
    
    [...]


    Hier würde dann eine dritte Activity aufgerufen werden - in diesem Fall die Artikel-ändern-Activity.


    ________________


    Der einzige Unterschied, der mir bei deinen beiden Fällen auffällt, ist das Überschreiben der onClick-Methode bzw. dessen Aufruf, was im zweiten Fall nicht vorhanden ist.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!