Я пытаюсь реализовать модуль динамических функций в своем приложении. У меня есть кнопка в Activity. Когда пользователь нажимает, я проверяю, уже установлен ли модуль. если нет, я запускаю установку с помощью startInstall (запрос). Но я всегда перехожу в другое состояние.
Код
if (manager.installedModules.contains("sample")) {
-----> Always go to this block
Toast.makeText(this, "Already Downloaded", Toast.LENGTH_SHORT).show()
Intent().setClassName(packageName, "com.example.sample.SampleActivity")
.also {
startActivity(it)
}
} else {
// Never came to this state
// Create request to install a feature module by name.
val request = SplitInstallRequest.newBuilder()
.addModule("sample")
.build()
// Load and install the requested feature module.
manager.startInstall(request)
}
В модуле динамических функций я установил onDemand = "true"
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:dist = "http://schemas.android.com/apk/distribution"
package = "com.example.sample">
<dist:module
dist:onDemand = "true"
dist:title = "@string/title_sample">
<dist:fusing dist:include = "true" />
</dist:module>
<application>
<activity android:name = "com.example.sample.SampleActivity">
<intent-filter>
<action android:name = "android.intent.action.VIEW" />
</intent-filter>
</activity>
</application>
Нет @PoovarasanSelvaraj, динамическая функция уже существует в моем приложении, поэтому она не дает сбой, когда я startActivity
add split = "dynamic-feature-test" in your manifest split = "split_name" : Defines the name of the module, which your app specifies when requesting an on demand module using the Play Core Library.
В настоящее время единственный способ проверить вашу реализацию доставки onDemand - это загрузить .aab в PlayStore.
При стандартном развертывании из Android Studio все модули развертываются на подключенном устройстве.
В среде разработки поток правилен, что модуль уже установлен при развертывании на устройстве.
Что касается кода, обратите внимание на образец приложения, в частности, на реализацию загрузки и прослушивания Основная деятельность.
есть какая-нибудь официальная документация?
Есть документация по PlayCore, но в настоящее время в ней не упоминается требование загрузки.
Другой способ тестирования динамических функциональных модулей локально, не загружая их в игровой магазин, - это использовать связка-инструмент.
bundle-tool использует флаг --local-testing, который имитирует точную среду, и можно увидеть загрузку функционального модуля.
./gradlew bundleDebug
bundletool build-apks --overwrite --local-testing --bundle path/to/bundle.aab --output path/to/apkset.apks
bundletool install-apks --apks path/to/apkset.apks
Для получения более подробной информации перейдите по следующей ссылке: https://medium.com/androiddevelopers/local-development-and-testing-with-fakesplitinstallmanager-57083e1840a4
Это помогло. Спасибо, что поделился.
Потому что имя вашего пакета содержит «образец». поэтому всегда есть этот блок, просто поменяйте и проверьте.