尝试启动另一个Activity时出现Android.Content.ActivityNotFoundException。我无法找到任何告诉我这是否可行的信息。
这是如何启动Activity:
var intent = new Intent(this, typeof (ClassB));
intent.PutExtra("mac",mac);
intent.SetFlags(ActivityFlags.SingleTop);
StartActivityForResult(intent,_requestcodeControl);
这是ClassB:
[Activity(Label = "ClassB", MainLauncher = false)]
public class ClassB : ClassA
{
protected override void OnCreate(Bundle bundle)
{
Log.Debug(TAG, "OnCreate");
base.OnCreate(bundle);
.....
这是ClassA:
public abstract class ClassA : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
.....
我能定义一个这样的活动吗?
//编辑: 我调整了我的Manifest.xml,因此出现了这两个类,因为monodroid没有添加它们。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" android:versionCode="1" android:versionName="0.0.1a">
<application android:label="A" android:name="mono.android.app.Application" android:debuggable="true">
<activity android:label="Classb" android:name="androidprotoype_mono.devices.ClassB" />
<activity android:label="ClassA" android:name="androidprotoype_mono.devices.ClassA" />
</application>
....
现在我不再获得异常,但应用程序崩溃了。
这就是Log所说的:
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
我撤回了这个问题。也使派生类抽象。这显然是错误。
答案 0 :(得分:0)
好的,让它运转起来。
我以某种方式使Activity我实际上也想开始抽象。 &lt; - 实际错误 Manifest文件未更新,因为这些类都是抽象的。现在只有非抽象类在清单中,它才有效。
子文件夹没有问题,这完全是关于那个小摘要。