ActivtyNotFoundException,但YES,它是在我的AndroidManifest.xml中声明的



在我的应用程序中,我调用

startActivityForResult( new Intent(this, ShowPreferencesActivity.class), <some code>);

活动声明为:

package ca.qc.webalterpraxis.cinedroid.activity.preference;
public class ShowPreferencesActivity extends PreferenceActivity { ...}

在我的清单上我得到了:

<activty android:name=".activity.preference.ShowPreferencesActivity" android:label="@string/set_preferences">

但当我尝试启动活动时(在这个问题的第一行代码中),我收到了一个异常:

E/AndroidRuntime(1830): android.content.ActivityNotFoundException: Unable to find explicit activity class {ca.qc.webalterpraxis.cinedroid/ca.qc.webalterpraxis.cinedroid.activity.preference.ShowPreferencesActivity}; have you declared this activity in your AndroidManifest.xml?

我尽我所能:

  • 在清单中,用类的完全限定名替换类的名称
  • 使用setClassName设置intent类名
  • 为活动提供默认筛选器

我重新启动了大约10次eclipse,重新启动了我的计算机,从设备上删除了应用程序,重新加载,等等…

我不知道发生了什么。更糟糕的是,它以前是有效的,但在我重命名该类后就不再有效了。奇怪的是:即使我现在重命名这个类,AndroidManifest也不会在eclipse中更新,我必须手动更新它。。但它仍然适用于其他类别。。。

此外,请注意,除了正在测试的应用程序之外,我还有一个测试应用程序,测试应用程序也找不到为其提供工具的活动。

哦,最后但同样重要的是,我100%确定ShowPreferencesActivity在生成的dex文件中,我对其进行了dexdump检查。

提前感谢您抽出时间。(我使用maven android插件)

谢谢大家,我发现了我的问题:清单中的标签是

<activty

而不是

<activity

但为什么日食允许这样做???!!!

最新更新