新しい Android 動的配信機能をアプリに追加しようとしていますが、動的機能モジュールのリソースにアクセスしようとすると失敗し続けます。
基本的な考え方は、コードを持たないモジュールをロードすることですが、ドローアブル リソースとして一連のベクター ファイルをロードします。
モジュールをロードしたり、特定のモジュールのアセットにアクセスしたりすることはできますが、リソースにアクセスする方法がわかりません。
val res = context.createPackageContext(context.packageName, 0).also {
SplitCompat.install(it)
}.resources
val assetsStream = res.assets.open("test.txt")
val assetContent = assetsStream.bufferedReader()
.use {
it.readText()
}
var iconResourceId = res.getIdentifier(stringIdentifier, IDENTIFIER_DRAWABLE, context.packageName)
先ほど言ったように、assets txt ファイル内のテキストを読み取ることはできますが、リソース内にドローアブルが見つからないようです。
動的モジュールのリソースフォルダーにあることがわかっているドローアブルを取得しようとすると、ResourcesNotFoundException
Google が提供する Android ドキュメントを読みましたが、ダウンロードしたモジュール リソースへのアクセス方法に関する詳細情報を見つけることができません。
https://developer.android.com/guide/app-bundle/playcore#access_installed_modules