Функциональный модуль по требованию не установлен по умолчанию

У нас есть динамический функциональный модуль под названием replay. Мы начали делать этот модуль во время установки:

    <dist:module
        dist:instant="false"
        dist:title="@string/title_replay">
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
        <dist:fusing dist:include="true" />
    </dist:module>

когда мы установили приложение локально:

$ ./gradlew app:installDebug --info

Мы видим как базовое приложение, так и динамический модуль:

Generating APKs for device 'Pixel 3a - 10' for app:debug
The APKs have been extracted in the directory: /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259
Installing APKs 'base-xxhdpi.apk, base-master_2.apk, base-en.apk, base-arm64_v8a_2.apk, replay-xxhdpi.apk, replay-master.apk' on 'Pixel 3a - 10' for app:debug
[SplitApkInstallerBase]: Created install session 1842207670 with options -r -t -S 12108428
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/base-xxhdpi.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/base-master_2.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/base-en.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/base-arm64_v8a_2.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/replay-xxhdpi.apk to session 1842207670
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect7963605990779726259/replay-master.apk to session 1842207670
Installed on 1 device.
Task :app:installDebug in app Finished

Однако когда мы переходим к запросу по запросу:

    <dist:module
        dist:instant="false"
        dist:title="@string/title_replay">
        <dist:delivery>
            <dist:on-demand />  THIS IS THE ONLY CHANGE
        </dist:delivery>
        <dist:fusing dist:include="true" />
    </dist:module>

При установке больше не устанавливаются динамические файлы apks:

$ ./gradlew app:installDebug --info

Generating APKs for device 'Pixel 3a - 10' for app:debug
The APKs have been extracted in the directory: /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897
Installing APKs 'base-xxhdpi.apk, base-master_2.apk, base-en.apk, base-arm64_v8a_2.apk' on 'Pixel 3a - 10' for app:debug
[SplitApkInstallerBase]: Created install session 745896174 with options -r -t -S 12031951
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897/base-xxhdpi.apk to session 745896174
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897/base-master_2.apk to session 745896174
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897/base-en.apk to session 745896174
[SplitApkInstaller]: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect788484471691589897/base-arm64_v8a_2.apk to session 745896174
Installed on 1 device.

Как мы должны делать это локально во время разработки? Мы должны использоватьbundletoolсгенерировать универсальный apk? Я предположил, что плагин Android достаточно умен, чтобы сделать все это за нас.

1 ответ

(В настоящее время) в Android Studio предварительно устанавливается только динамический функциональный модуль (выбранный в диалоговом окне модулей) при выборе для развертывания "APK по умолчанию" вместо "APK из пакета приложений", что может быть вызвано этой проблемой.

Другие вопросы по тегам