首页 > 解决方案 > 如何在 Android (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");

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

这对我来说也没有意义。如何访问资产包中的资产?

标签: androidkotlinandroid-assets

解决方案


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

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


推荐阅读