如何访问 Android 中的资产包数据 (kotlin)

How to access assets-pack data in Android (kotlin)

我使用资产包库在我的 Android kotlin 应用程序中打包了一些资产:https://developer.android.com/guide/app-bundle/asset-delivery/build-native-java

不,我应该能够通过 context.assets 使用 AssetManager 访问资产。但是,我不知道正确的路径是什么。

我的资产包名为 models 并在 .aab 文件的根文件夹中正确创建,因此我猜它也已正确安装。

现在根据文档 (https://developer.android.com/guide/playcore/asset-delivery/integrate-java) 我可以这样访问资产:

import android.content.res.AssetManager;
...
Context context = createPackageContext("com.example.app", 0);
AssetManager assetManager = context.getAssets();
InputStream is = assetManager.open("asset-name");

我将包名更改为我的包名。但是资产名称是什么?!?这不是我的 models 资产文件夹中文件的名称。我试过 assetManager.list(p)p 我能想到的任何东西,但我找不到我的资产存储位置。

对于p=''assetManager.list(p)的结果是

 hw_pc_white_apps.xml
    hw_pc_white_apps_pad.xml
    images
    permission_grant_policy.xml
    permission_grant_policy_oversea.xml
    pfw
    sfpconfig.json
    ukeyapp.xml
    water.frag
    water.vert
    webkit
    wifi_policy.xml
    wifipro_regexlist.xml

这对我来说也毫无意义。我如何从资产包中访问资产?

好的,我找到解决办法了:Android工作室默认不下发资源包,需要在Run -> Edit configuration -> Deliver APK from app bundle下调整配置(https://developer.android.com/guide/app-bundle/test)下发资源和应用程序。

现在可以访问资产,就好像它们是主应用程序的资产一样。