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

时间:2012-02-20 12:54:52

标签: android eclipse android-manifest

在我的应用程序中我打电话

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类名
  • 为活动提供默认过滤器

我重新启动eclipse大约10次,重新启动计算机,从设备中删除应用程序,重新安装等等...

我不知道发生了什么。更糟糕的是它之前正在工作,但在我重新命名课程之后不再这样了。奇怪的是:即使我现在重命名这个类,AndroidManifest也不会在eclipse中更新,我必须手工更新它..但它仍适用于其他类......

另外,请注意我有一个测试应用程序,除了测试中的应用程序之外,测试应用程序也找不到用于检测它的活动。

哦,最后但并非最不重要的是,我100%确定ShowPreferencesActivity位于生成的dex文件中,我将其dexdumped以进行检查。

提前感谢您的时间。  (我使用maven-android-plugin)

1 个答案:

答案 0 :(得分:0)

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

<activty

而不是

<activity

但为什么eclipse允许??? !!!