ActivityNotFoundException(是,此活动在AndroidManifest.xml中声明)
我发现一些线程报告了类似的问题,但确实提供了一些我还没有尝试过的东西 一个无辜的呼吁:ActivityNotFoundException(是,此活动在AndroidManifest.xml中声明),android,android-manifest,preferenceactivity,library-project,Android,Android Manifest,Preferenceactivity,Library Project,我发现一些线程报告了类似的问题,但确实提供了一些我还没有尝试过的东西 一个无辜的呼吁: mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class)); 在AndroidManifest.xml中包含以下内容: <application> <activity android:name="MyActivityLib" /> <activity android:name=
mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class));
在AndroidManifest.xml中包含以下内容:
<application>
<activity android:name="MyActivityLib" />
<activity android:name="com.example.baseapp.MyEditPreferences" android:label="@string/app_name">
</activity>
</application>
问题是,在我将其从一个单一的应用程序项目更改为一个由库项目和应用程序项目组成的两部分项目之前,这段代码曾经完美地工作过
AndroidManifest.xml是库项目中的一个
我需要做什么来消除此活动NotFoundException
?也许这会起作用
Intent mIntent = new Intent();
mIntent.setClassName(mActivity, "com.example.baseapp.MyEditPreferences");
mActivity.startActivity(mIntent);
我刚刚解决了这个问题 我所要做的就是将FQN添加到应用程序项目的
AndroidManifest.xml
:
<activity android:name="com.example.baseapp.MyEditPreferences"
android:label="com.example.baseapp.MyActivityLib:string/app_name">
</activity>
结论:重要的是应用程序的
AndroidManifest.xml
,而不是库的。我知道这是一个非常古老的线程,但我也遇到了同样的问题。就我而言,我所要做的就是删除一个虚假的
import java.util.prefs.Preferences;
如果您使用的类的名称包含在android软件包中(设置、首选项、活动等),则需要将以下内容:
Intent i = new Intent(this, <name_of_your_package>.classname.class);
Intent i=新的Intent(这个.classname.class);
如果您没有输入“您的包的名称”,编译器会认为您引用的是android包(android.*)中的类。只需检查您的清单中是否有IDE未指出的错误。什么是com.example.baseapp.paypal??你在用贝宝图书馆吗?@Ravi Vyas是的,我在用。这就是我将单一应用程序项目分解为两部分的主要原因:所有Android市场通用的库和一个小型应用程序项目(活动类派生自库活动类),该项目是为每个Android市场或appstore定制的。你注意到什么了吗?我不相信你可以创建一个意图来调用另一个包中的类。除了你令人敬畏的代表分数404外,我似乎找不到任何与给出的信息相关的内容:-(@Maximus Why?到目前为止,我成功地解决了将单片应用程序项目分解为两部分项目所产生的所有问题。有时它涉及到一些难看的解决方法,比如,但至少它是有效的。如果你能解释原因,我也许能想出一个解决方法。:)感谢和+1的建议。我只是尝试了一下,但没有任何帮助。我还发现了一条描述一个极其相似问题的线索:FQN方法对他有效,但没有为我解决问题。还有其他想法吗?这里写着:在应用程序项目的清单文件中,必须添加从库项目导入的应用程序将使用的所有组件的声明
import java.util.prefs.Preferences;
Intent i = new Intent(this, <name_of_your_package>.classname.class);