我已经提到了“类似的问题”,但我仍然无法从主项目启动图书馆计划活动。
我有项目A(主要) 我有项目B(图书馆)
活动在库清单中声明(即使在主清单中)
但是当我运行代码时,日志会抛出错误,询问是否在manifest.xml文件中声明了活动。
主项目正确地包括库,一切都编译但错误是,我把我想要的主要项目:
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.package.activities", "MyActivity"));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage(context.getPackageName()); // tried without this
context.startActivity(intent);
这是我的清单(来自图书馆项目):
<activity
android:name="com.package.activities.MyActivity"
android:exported="true"
android:label="@string/title_activity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation"/>
记录:
android.content.ActivityNotFoundException:无法找到显式活动类{com.package.activities / MyActivity};你有没有在AndroidManifest.xml中声明这个活动?
答案 0 :(得分:0)
尝试一下:
Intent intent = new Intent(context, MyActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
答案 1 :(得分:0)
当您尝试将活动作为单独的组件启动时,Android会开始在主项目代码中查找此库活动。由于活动属于库而不是主项目,因此您获得ActivityNotFoundException
。
鉴于您已将库项目作为AAR文件添加到主项目,您只需从主项目启动库活动,如下所示:
Intent intent=new Intent(this, "your.library.package.activityname.class")
startActivity(intent)
您必须在主项目的清单文件中声明库活动。单行就足够了
<application ...>
<activity android:name="your.library.package.activityname" />
</application>