Libgdx + Glide - 无法加载资产的依赖项
Libgdx + Glide - Couldn't load dependencies of asset
与涉及此错误的所有问题不同,这个问题有点棘手。
我有以下内容:
正在使用 Glide v3 下载 .png 图像到我的应用程序的内部存储中,使用 SimpleTarget 获取位图并将其保存到文件中。
事实上,我知道这有时会保存损坏的文件,可能是由于超时问题。
没关系。
当 libgdx 的 AssetManager 尝试渲染此文件时出现问题。
它抛出 "Couldn't load dependencies of asset" 错误。
没关系。
所以,我需要知道的是:
有什么方法可以捕获获取文件名的错误以将其删除并开始新的下载调用?
我已经尝试过的事情:
- 正在寻找 AssetManager 函数来检查文件的完整性,据我所知有 none
- 用 FileHandleResolver 检查文件,Gdx.files.absolute(fileName).exists,但这没有用,因为文件确实存在,而且它的大小不是 0.
- 捕获 GdxRuntimeException,解析它以获取文件名,但这是最糟糕的方法。
提前谢谢大家。
您可以将 AssetErrorListener 添加到您的 AssetManager。这将为您提供加载失败的特定资产的 AssetDescriptor 以及相关的异常。这两条信息应该可以让您获得需要重新下载并重试的内容。
与涉及此错误的所有问题不同,这个问题有点棘手。
我有以下内容:
正在使用 Glide v3 下载 .png 图像到我的应用程序的内部存储中,使用 SimpleTarget 获取位图并将其保存到文件中。 事实上,我知道这有时会保存损坏的文件,可能是由于超时问题。
没关系。
当 libgdx 的 AssetManager 尝试渲染此文件时出现问题。
它抛出 "Couldn't load dependencies of asset" 错误。
没关系。
所以,我需要知道的是:
有什么方法可以捕获获取文件名的错误以将其删除并开始新的下载调用?
我已经尝试过的事情:
- 正在寻找 AssetManager 函数来检查文件的完整性,据我所知有 none
- 用 FileHandleResolver 检查文件,Gdx.files.absolute(fileName).exists,但这没有用,因为文件确实存在,而且它的大小不是 0.
- 捕获 GdxRuntimeException,解析它以获取文件名,但这是最糟糕的方法。
提前谢谢大家。
您可以将 AssetErrorListener 添加到您的 AssetManager。这将为您提供加载失败的特定资产的 AssetDescriptor 以及相关的异常。这两条信息应该可以让您获得需要重新下载并重试的内容。