Android 安装时 Assets 交付访问

标签 android kotlin android-assets

我正在使用 install-time 选项将我的 Android 应用程序配置为使用 Play Asset Delivery。 我正在按照官方指南找到here

这是我的以下配置:

在项目设置中,我创建了一个asset_pack目录,包括子目录src/main/assets

在应用程序 gradle 中,我设置了我的 Assets 包:

assetPacks = [":asset_pack"]

在 settings.gradle 我包含了我的 Assets 包:

include ':app'
include ':asset_pack'

在asset pack gradle中我添加了对asset pack的引用和下载方法:

assetPack {
    packName = "asset_pack"
    dynamicDelivery {
        deliveryType = "install-time"
    }
}

在我尝试从此根目录检索 Assets 之前,一切似乎都运行良好。

文档说明我应该使用这种方法:

val packageContext: Context = createPackageContext("com.example.app", 0)
val assetManager: AssetManager = packageContext.assets
val inputStream: InputStream = assetManager.open("basemap/phil.jpg")

我的应用在尝试检索 Assets 时崩溃(我已将 com.example.app 替换为我的应用信息)

当我查看assetManager 列表时,显示的assetManager.list("") 文件都是应用程序包的一部分。不幸的是,名为asset_pack 的文件夹或其任何内容并未作为选项显示。

这是我的问题:我想我看不到我的asset_pack 文件的原因是因为它在我的应用程序目录中处于同一级别,但我不知道如何使用assetManager 访问该文件夹。有人知道我如何访问这些文件吗?

最佳答案

正确答案见 How to access assets-pack data in Android (kotlin) 基本上编辑您的运行配置以创建要从 app-bundle 安装的 apk

关于Android 安装时 Assets 交付访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66019971/

相关文章:

安卓:getAssets().openFd() 和 FileNotFoundException

javascript - 亚马逊的新功能允许上传设备相机拍摄的照片——怎么样?

android - 将 jbytearray 与 JNI 中的字符串进行比较

android包名格式

java - Spring WebFilter覆盖ExceptionHandler header

android - Android中android库 Assets 的路径?

android - 自定义 ListVIew 未显示,显示的是空屏幕

android - 覆盖 fragment 中的 setOnClickListener 停止工作

java - setImage经常不阻塞UI线程Android

android - Assets 文件夹中的 Pdf 文件无法在第三方应用程序中打开