ActivityNotFoundException意外
问题描述:
我在我的一个活动得到这个错误,它是使没有任何意义,因为我可以去Calendar
活动从另一个活动,所以我知道我在清单ActivityNotFoundException意外
<activity android:name=".Calendar" android:label="Calendar"/>
意向声明它正确的在对话框选择
Intent ok = new Intent(Events.this,Calendar.class);
ok.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(ok); //ActivityNotFoundException
finish();
我可以从活动A
到Calendar
活动就好了那么Calendar
活动访问我Events
活动BU我不能从我的Events
到Calendar
活动?
想法为什么这是?
编辑:更新,错误
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): FATAL EXCEPTION: main
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.app.notifyme/java.util.Calendar}; have you declared this activity in your AndroidManifest.xml?
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.app.Activity.startActivityForResult(Activity.java:2827)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.app.Activity.startActivity(Activity.java:2933)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at com.app.notifyme.Events$12.onClick(Events.java:318)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:873)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.widget.ListView.performItemClick(ListView.java:3513)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1849)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.os.Handler.handleCallback(Handler.java:587)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.os.Handler.dispatchMessage(Handler.java:92)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.os.Looper.loop(Looper.java:123)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at android.app.ActivityThread.main(ActivityThread.java:3839)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at java.lang.reflect.Method.invokeNative(Native Method)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at java.lang.reflect.Method.invoke(Method.java:507)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): at dalvik.system.NativeStart.main(Native Method)
答
导入正确的包。我猜你在Events
类中导入了类似java.util.Calendar
的东西。
如果由于某种原因,你既需要Calendar
类(你写了一个和java.util
),你必须把完整的路径...例如:
Intent ok = new Intent(Events.this, your.pkg.example.Calendar.class);
答
当你调用finish()
的系统实际上从堆栈中移除活动。
这不允许您返回到该活动。我建议你仔细阅读Activity Lifecycle Documentation。
它应该可以帮助你找出你的问题。 :)
编辑:
你也不应该需要那个标志。只要开始活动,系统就会处理剩下的事情。
您也无权访问其他活动的一项活动。每项活动都是独立的单元,不应尝试访问其他活动。
如果您需要在活动之间传递数据,请在单独的类中使用静态类/变量,或使用Intent.putExtra()
传递它。
你能发布完整的错误吗?有可能是活动的限定名称,这将允许用来验证cristian假设 – njzk2
用完整的logcat错误 – tyczj
更新,它确认您确实正在导入java.util.Calendar而不是com.app.notifyme.Calendar。用另一个替换第一个,它会起作用 – njzk2