0

Beim Versuch, eine andere Aktivität zu starten, erhalte ich eine Android.Content.ActivityNotFoundException. Ich konnte keine Informationen finden, die mir sagen, ob das möglich ist oder nicht.Android.Content.ActivityNotFoundException (für eine Klasse, die von einer Klasse abgeleitet ist, die von Activity abgeleitet ist)

Dies ist, wie die Aktivität wird beginnen:

var intent = new Intent(this, typeof (ClassB)); 
intent.PutExtra("mac",mac); 
intent.SetFlags(ActivityFlags.SingleTop); 
StartActivityForResult(intent,_requestcodeControl); 

Dies ist ClassB:

[Activity(Label = "ClassB", MainLauncher = false)] 
public class ClassB : ClassA 
{ 


    protected override void OnCreate(Bundle bundle) 
    { 
     Log.Debug(TAG, "OnCreate"); 
     base.OnCreate(bundle); 
    ..... 

Und das ist die KlasseA:

public abstract class ClassA : Activity 
{ 

    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 

    ..... 

Kann ich eine Aktivität definieren wie Das?

// bearbeiten: Ich habe meine Manifest.xml angepasst, so dass diese 2 Klassen erscheinen, weil Monodroid sie nicht hinzugefügt hat.

Jetzt bekomme ich die Ausnahme nicht mehr, aber die App stürzt vorher ab. Diese

ist, was die Log sagt:

E/AndroidRuntime(28005): FATAL EXCEPTION: main 
E/AndroidRuntime(28005): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{AndroidProtoype_Mono.AndroidProtoype_Mono/androidprotoype_mono.devices.ClassB}: java.lang.InstantiationException: androidprotoype_mono.devices.ClassB 
E/AndroidRuntime(28005):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573) 
E/AndroidRuntime(28005):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
E/AndroidRuntime(28005):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
E/AndroidRuntime(28005):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
E/AndroidRuntime(28005):  at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(28005):  at android.os.Looper.loop(Looper.java:130) 
E/AndroidRuntime(28005):  at android.app.ActivityThread.main(ActivityThread.java:3691) 
E/AndroidRuntime(28005):  at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(28005):  at java.lang.reflect.Method.invoke(Method.java:507) 
E/AndroidRuntime(28005):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 
E/AndroidRuntime(28005):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 
E/AndroidRuntime(28005):  at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(28005): Caused by: java.lang.InstantiationException: androidprotoype_mono.devices.Samson64952 
E/AndroidRuntime(28005):  at java.lang.Class.newInstanceImpl(Native Method) 
E/AndroidRuntime(28005):  at java.lang.Class.newInstance(Class.java:1409) 
E/AndroidRuntime(28005):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
E/AndroidRuntime(28005):  at  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565) 
E/AndroidRuntime(28005):  ... 11 more 

ich die Frage zurückziehen. Machte die abgeleitete Klassenzusammenfassung auch. Dies war offensichtlich die Schuld.

+2

Haben Sie diese Aktivität in Ihrem AndroidManifest ordnungsgemäß registriert? * (falls ja und der Fehler weiterhin auftritt, bitte diesen Manifestabschnitt posten) * –

+2

Nun, haben Sie beide Aktivitäten im Manifest deklariert? – Th0rndike

+0

Sie müssen Ihre Aktivität in Manifest-Datei registrieren http://stackoverflow.com/questions/4481903/how-to-register-a-new-activity-in-manifest-xml – vipin

Antwort

0

Okay, habe es funktioniert.

Ich machte irgendwie die Aktivität Ich wollte eigentlich auch abstrakt beginnen. < - aktueller Fehler Die Manifestdatei wurde nicht aktualisiert, da die Klassen beide abstrakt waren. Jetzt ist nur die nicht abstrakte Klasse im Manifest und es funktioniert.

Die Unterordner sind kein Problem, es ging nur um diese kleine Zusammenfassung.

Verwandte Themen