Вы можете посмотреть пример динамических функций на GitHub .
В примере используется BaseSplitActivity
, который переопределяет onAttachBaseContext
следующим образом:
override fun attachBaseContext(newBase: Context?) {
super.attachBaseContext(newBase)
SplitCompat.install(this)
}
Это гарантирует, что вновь загруженный сплит правильно установлен при запуске операции.
В случае активов вам нужно будет создать новый контекст пакета , как это
private fun displayAssets() {
// Get the asset manager with a refreshed context, to access content of newly installed apk.
val assetManager = createPackageContext(packageName, 0).assets
// Now treat it like any other asset file.
val assets = assetManager.open("assets.txt")
// ...
}