没有应用程序可以执行此操作 - 具有不同风格的共享代码



我正在尝试从我拥有的另一个应用程序("我以前的应用程序")的源代码创建一个新应用程序("我的新应用程序")。

为了做到这一点,我创建了一个新口味,更改了新风格的应用程序名称和新图标,一切正常。

但是我遇到过我无法启动(至少)一项活动的情况。

活动在作为模块包含的库中声明,并在库清单中以这种方式定义.xml:

<activity android:name="com.my.company.core.views.download.VersionActivity"
android:label="@string/app_name"
android:exported="false"
android:screenOrientation="portrait" />

我正试图通过以下方式启动这项活动:

Intent intent = new Intent(CurrentActivity.this, VersionActivity.class);
startActivity(intent);

如果我只有一个应用程序,例如终端中安装了"我的新应用程序",它可以完美运行。但是,如果我同时安装了"我的新应用程序"和"我以前的应用程序",当我尝试启动活动时,Android说"没有应用程序可以执行此操作"。

我无法在应用之间共享代码吗?清单中的活动声明有问题吗?顺便说一句,我已经尝试使用 exported="true",但它无论如何都不起作用。

提前谢谢。

您可以使用setPackage指定当前应用应处理意图。

Intent intent = new Intent();
intent.setAction("com.my.company.core.views.download.VersionActivity");
intent.setPackage(context.getPackageName());
startActivity(intent);

最新更新