android - 如何在 Android (kotlin) 中访问资产包数据
问题描述
我使用资产包库在我的 Android kotlin 应用程序中打包了一些资产:https ://developer.android.com/guide/app-bundle/asset-delivery/build-native-java
不是我应该能够使用AssetManager
via访问资产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
这对我来说也没有意义。如何访问资产包中的资产?
解决方案
好的,我找到了解决办法:Android Studio默认不下发资源包,需要在Run -> Edit configuration -> Deliver APK from app bundle
(https://developer.android.com/guide/app-bundle/test)下调整配置下发资源和应用程序。
现在资产可以访问,就好像它们是主应用程序的资产一样。
推荐阅读
- sqlite - 无法在 Windows 上编译 exqlite
- reactjs - redux 状态下的值仅在强制刷新后更新
- c++ - 字符读取不正确
- python - 为基于线程的队列提供异步 get() 函数
- excel - 使用 Excel 自动旋转
- javascript - 使用 JavaScript 将 HTML 表格数据导出到 Excel
- vb.net - Datagridview 宽度/高度消除灰色区域
- python - 当检查字典中是否存在密钥时,我如何解决“TypeError:字符串索引必须是整数?”
- linux - Linux命令列出具有路径的1级文件
- python - pyserum 下单未知指令错误