在我的应用程序中,我调用
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
但为什么日食允许这样做???!!!