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(); 

我可以从活动ACalendar活动就好了那么Calendar活动访问我Events活动BU我不能从我的EventsCalendar活动?

想法为什么这是?

编辑:更新,错误

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) 
+0

你能发布完整的错误吗?有可能是活动的限定名称,这将允许用来验证cristian假设 – njzk2

+0

用完整的logcat错误 – tyczj

+0

更新,它确认您确实正在导入java.util.Calendar而不是com.app.notifyme.Calendar。用另一个替换第一个,它会起作用 – njzk2

导入正确的包。我猜你在Events类中导入了类似java.util.Calendar的东西。

如果由于某种原因,你既需要Calendar类(你写了一个和java.util),你必须把完整的路径...例如:

Intent ok = new Intent(Events.this, your.pkg.example.Calendar.class); 
+0

是的,我确实有在我的events类中导入的java.util.Calendar包,那么通过导入正确的包是什么意思? – tyczj

+0

如果仔细观察,将'import java.util.Calendar;'替换为'import your.package.Calendar;' – Cristian

当你调用finish()的系统实际上从堆栈中移除活动。

这不允许您返回到该活动。我建议你仔细阅读Activity Lifecycle Documentation

它应该可以帮助你找出你的问题。 :)

编辑:

你也不应该需要那个标志。只要开始活动,系统就会处理剩下的事情。

您也无权访问其他活动的一项活动。每项活动都是独立的单元,不应尝试访问其他活动。

如果您需要在活动之间传递数据,请在单独的类中使用静态类/变量,或使用Intent.putExtra()传递它。

+0

,您会发现该问题不是从日历返回,而是实际首先到达那里。此外,完成一项活动将其从堆栈中移除,这意味着后退将带您前一个或关闭应用程序,如果没有。 – njzk2

+0

我认为OP对活动应该是什么有不正确的理解。您不应该尝试从其他活动访问一项活动。我认为克里斯蒂安的解决方案可能是正确的。愚蠢的错误往往是最难看到的。 – Codeman

+0

我明白一项活动的作用,当我说访问时,我的意思是我从那里得到那项活动 – tyczj