如何在 Android (kotlin) 中访问 assets-pack 数据

Gen*_*ror 4 android android-assets kotlin

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

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

我的资产包被调用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");
Run Code Online (Sandbox Code Playgroud)

我将包名更改为我的包名。但是资产名称是什么?!?这不是我的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
Run Code Online (Sandbox Code Playgroud)

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

Gen*_*ror 6

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

现在,资产可以像主应用程序的资产一样访问。