我正在尝试从我拥有的另一个应用程序("我以前的应用程序")的源代码创建一个新应用程序("我的新应用程序")。
为了做到这一点,我创建了一个新口味,更改了新风格的应用程序名称和新图标,一切正常。
但是我遇到过我无法启动(至少)一项活动的情况。
活动在作为模块包含的库中声明,并在库清单中以这种方式定义.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);