0

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

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

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

活动在作为模块包含的库中声明,并在库 manifest.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",但它还是没有用。

提前致谢。

4

1 回答 1

0

您可以指定您当前的应用程序应该使用setPackage.

Intent intent = new Intent();
intent.setAction("com.my.company.core.views.download.VersionActivity");
intent.setPackage(context.getPackageName());
startActivity(intent);
于 2019-07-18T17:22:51.420 回答