繁体   English   中英

Android:从主应用程序启动库活动

[英]Android: Launching Library Activity from Main App

我已经阅读了“类似的问题”,但仍然无法从主项目启动“图书馆项目活动”。

我有项目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中声明了此活动?

试试看:

Intent intent = new Intent(context, MyActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

当您尝试将活动作为单独的组件启动时,Android开始在您的主项目代码中查找此库活动。 由于活动属于库而不是主项目,因此将获得ActivityNotFoundException

假定您已将库项目作为AAR文件添加到主项目中,则可以简单地从主项目启动库活动,如下所示:

Intent intent=new Intent(this, "your.library.package.activityname.class")
startActivity(intent)

您必须在主项目的清单文件中声明库活动。 一行就足够了

<application ...>
    <activity android:name="your.library.package.activityname" />
</application>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM