使用即时应用程序在设备上安装已安装的应用程序

Installing installed app on a device with instant app

请耐心等待我解释我在 "instant app" 上安装 "installed app" 时遇到的奇怪问题。

产生问题的步骤:

  1. 在设备上安装免安装应用程序 运行 Android O.
  2. 安装 "installed app".

问题:

  1. 已安装的应用程序未显示在应用程序抽屉中,如果我进入设备设置 --> 应用程序,我会将该应用程序视为即时应用程序(带有闪电图标)但大小已安装的应用程序。所以已安装的应用程序实际上已安装,但仍然像即时应用程序一样运行。

  2. 免安装应用只有 1 个 activity,这是已安装应用的第 2 个 activity。因此,当我在第一次启动时进入已安装的应用程序时,我无法通过第二个 activity,因为 activity 的行为就像一个即时应用程序,即 InstantApps.isInstantApp(activityContext) returns 是的。因此,尝试在应用中走得更远会打开应用的 Play 商店页面。

如果我在没有即时应用程序的设备上安装已安装的应用程序,它可以正常工作。

默认值 url 是为基本功能中的 1 activity 和安装的应用程序中的 2 个活动定义的 - 启动器(主页)和第二个 activity(即时应用程序的一部分应用程序)。

这可能是什么问题?

更新

我更新了已安装的应用程序。现在我构建了用于测试的即时应用程序的发布版本,如果我单击仅在已安装应用程序中的功能,它会打开 Play 商店,一切都很好。但是在我安装该应用程序后,我遇到了同样的问题,它的行为就像一个即时应用程序 - 应用程序抽屉中没有图标,设置 - > 应用程序中应用程序图标上的闪电图标。这是怎么回事?

问题是您正在使用 Instant Apps 功能,该功能仅用于体验(了解)该应用程序。如果您想测试该应用程序,请在没有 Instant Apps 的情况下安装它。查看 link 了解更多信息 - https://developer.android.com/topic/instant-apps/index.html

如果您的 device/emulator 已经安装了免安装应用程序,如果您从 Android Studio 安装安装应用程序,您将 运行 遇到类似这样的问题。我不确定您使用的是哪个 Android Studio 3.0 Canary 版本,但目前 strange/broken 有一些东西(我们必须等待更新)。

遗憾的是,目前您可能需要使用此 adb cmd 手动安装已安装的应用程序:

adb install -r -t --full <installed-app.apk>

这应该用安装的应用程序正确地覆盖即时应用程序。

另见https://issuetracker.google.com/issues/63932235