我正在使用该选项将我的 Android 应用程序配置为使用Play Asset Deliveryinstall-time。我正在遵循此处找到的官方指南
这是我的以下配置:
在项目设置中,我创建了一个 asset_pack 目录,包括子目录 src/main/assets
在应用程序 gradle 中,我设置了我的资源包:
assetPacks = [":asset_pack"]
Run Code Online (Sandbox Code Playgroud)
在 settings.gradle 中,我包含了我的资源包:
include ':app'
include ':asset_pack'
Run Code Online (Sandbox Code Playgroud)
在资产包gradle中,我添加了对资产包的引用和下载方法:
assetPack {
packName = "asset_pack"
dynamicDelivery {
deliveryType = "install-time"
}
}
Run Code Online (Sandbox Code Playgroud)
一切似乎都工作正常,直到我尝试从这个根级别目录检索资产。
该文档指出我应该使用这种方法:
val packageContext: Context = createPackageContext("com.example.app", 0)
val assetManager: AssetManager = packageContext.assets
val inputStream: InputStream = assetManager.open("basemap/phil.jpg")
Run Code Online (Sandbox Code Playgroud)
我的应用程序在尝试检索资产时崩溃(我已将 com.example.app 替换为我的应用程序信息)
当我查找 assetManager 列表时,assetManager.list("")显示的文件都是应用程序包的一部分。不幸的是,名为 asset_pack 的文件夹或其任何内容都不会显示为选项。
这是我的问题:我想我看不到 asset_pack 文件的原因是因为它与我的应用程序目录处于同一级别,但我不知道如何使用 assetManager 访问该文件夹。有人知道我如何访问这些文件吗?