当前位置: 首页 > news >正文

解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题

目录

问题:

尝试

问题得到解决

我的解释


问题:


         最近游戏要上线,发现一个现象,部分机型在启动的时候闪退或者黑屏,概率是5%左右,通过Bugly只有个别机型才有这个现象,其实真实情况比这严重的多,bugly有时候并不能捕捉到这种情况,我们各种怀疑和查找,最终发现问题的根源。

问题日志如下:

2-18 15:04:10.924 28696 30223 E Unity : Unable to open archive file for writing: '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Temp/0b2da51ac602117b08efce711b40391f/__data'
12-18 15:04:10.924 28696 30144 E Unity : Error while downloading Asset Bundle: Failed to decompress data for the AssetBundle 'jar:file:///data/app/~~mqBnkrTVeHx0R5PQj6Zlhw==/com.xfp.hnsz.ks.xwdxy.cs-ujHBQxE6h_IEHhAMfYKUNA==/base.apk!/assets/assets-art-atlas-achievement.spriteatlasv2_assets_all_fb282f19f9eb9a06452ff40988043469.bundle'.
12-18 15:04:10.927 28696 30148 E Unity : Unable to move cache file '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Temp/1678b268885c708b6b23968c60116b1a' to '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Shared/c145b22e3c49b6b6064231a90d5e684c/48c0472eecd6b114bfc238bd99e509c4': error code - 1
12-18 15:04:10.927 28696 30148 E Unity : Error while downloading Asset Bundle: Couldn't move cache data '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Temp/1678b268885c708b6b23968c60116b1a' into place '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Shared/c145b22e3c49b6b6064231a90d5e684c/48c0472eecd6b114bfc238bd99e509c4' when caching AssetBundle 'jar:file:///data/app/~~mqBnkrTVeHx0R5PQj6Zlhw==/com.xfp.hnsz.ks.xwdxy.cs-ujHBQxE6h_IEHhAMfYKUNA==/base.apk!/assets/icon_fr_eye.png_48c0472eecd6b114bfc238bd99e509c4.bundle'.
12-18 15:04:10.927 28696 30149 E Unity : Unable to move cache file '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Temp/eda9c7b7cbb31ddf2be58ac700e478d6' to '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Shared/c64d4e8d8e84733e1a9638e93f484830/1627a372980ad47ae64c100b39449f60': error code - 1
12-18 15:04:10.927 28696 30149 E Unity : Error while downloading Asset Bundle: Couldn't move cache data '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Temp/eda9c7b7cbb31ddf2be58ac700e478d6' into place '/storage/emulated/0/Android/data/com.xfp.hnsz.ks.xwdxy.cs/files/UnityCache/Shared/c64d4e8d8e84733e1a9638e93f484830/1627a372980ad47ae64c100b39449f60' when caching AssetBundle 'jar:file:///data/app/~~mqBnkrTVeHx0R5PQj6Zlhw==/com.xfp.hnsz.ks.xwdxy.cs-ujHBQxE6h_IEHhAMfYKUNA==/base.apk!/assets/icon_mca_up.png_1627a372980ad47ae64c100b39449f60.bundle'.
12-18 15:04:11.222 28696 30025 E Unity : UnityWebRequestException: Data Processing Error, see Download Handler error
12-18 15:04:11.222 28696 30025 E Unity : at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <00000000000000000000000000000000>:0
12-18 15:04:11.222 28696 30025 E Unity : at Cysharp.Threading.Tasks.UnityAsyncExtensions+UnityWebRequestAsyncOperationConfiguredSource.GetResult (System.Int16 token) [0x00000] in <00000000000000000000000000000000>:0

 通过日志我们发现,在unityActivity一启动的时候,我们就启动下载更新文件(也就是在awake函数中调用UnityWebRequest函数将StreamingAssets的初始包的assetbundle拷贝到可写的沙盒目录下),小概率爆出如上问题。       

尝试

        我们怀疑是unity的storage的存储权限问题,所以我们将安装目录放到 external(SDCard)扩展卡中,默认情况是internal(沙盒目录):

        

并在导出android工程的清单文件(AndroidManifest.xml)下开扩展卡权限:

        READ_EXTERNAL_STORAGE(读取外部存储器 )

        WRITE_EXTERNAL_STORAGE(写外部存储器

但是由于发行方说,游戏已启动就申请扩展卡的存储权限,不合规;也不利于用户安装和导量的转化,最终我们将该办法摒弃掉了。

问题得到解决

从头再来,最终我们在官网发现Caching.ready

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;public class Example : MonoBehaviour
{IEnumerator IsCachingReadyExample(string uri){//Using this conditional says we want to wait for our Caching system to be ready before trying to download bundleswhile (!Caching.ready){yield return null;}//Download the bundleUnityWebRequest request = UnityWebRequest.GetAssetBundle(uri);yield return request.SendWebRequest();AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(request);//Do something with the AssetBundle...}
}

当我们在UnityWebRequest我们的assetbundle之前加上Caching.ready这句的时候,最终问题得到解决。

        其实日志已经告诉我们,在写文件的时候无法将文件写入到缓存中。由于unity对于cache的机制以及什么时候cache.ready准备好了并没有写的很清楚(或许官方写了,我并没有找到出处)

我的解释

        对于cache,unity应该unityActivity一启动的时候需要申请cache,但一定是异步或者在awake之后,而我们的下载更新就在awake第一行就启动下载并是异步的操纵,这时cache有一定概率并没有初始化完成。所有造成有一定概率爆出以上错误的原因。

        如果小伙伴找到cache的详细文档以及cache.ready=true的时机,请告知我,不胜感激!!!

相关文章:

解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题

目录 问题&#xff1a; 尝试 问题得到解决 我的解释 问题&#xff1a; 最近游戏要上线&#xff0c;发现一个现象&#xff0c;部分机型在启动的时候闪退或者黑屏&#xff0c;概率是5%左右&#xff0c;通过Bugly只有个别机型才有这个现象&#xff0c;其实真实情况比这严重的多…...

SpringBoot默认配置文件

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot默认配置文件 📚个人知识库: Leo知识库,欢迎大家访问 1.前言☕…...

Flink构造宽表实时入库案例介绍

1. 安装包准备 Flink 1.15.4 安装包 Flink cdc的mysql连接器 Flink sql的sdb连接器 MySQL驱动 SDB驱动 Flink jdbc的mysql连接器 2. 入库流程图 3. Flink安装部署 上传Flink压缩包到服务器&#xff0c;并解压 tar -zxvf flink-1.14.5-bin-scala_2.11.tgz -C /opt/ 复…...

【Kubernetes】K8s 查看 Pod 的状态

K8s 查看 Pod 的状态 [rootk8s-master1 ~]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-3 1/1 Running 2 (34m ago) 14hNAME&#xff1a;Pod 的名称。READY&#xff1a;代表 Pod 里面有几个容器&#xff0c;前面是启动的&#xff0c;后面…...

Linux系统操作命令

Linux管理 在线查询Linux命令&#xff1a; https://www.runoob.com/linux/linux-install.htmlhttps://www.linuxcool.com/https://man.linuxde.net/ 1.Linux系统目录结构 Linux系统的目录结构是一个树状结构&#xff0c;每一个文件或目录都从根目录开始&#xff0c;并且根目…...

大模型学习与实践笔记(五)

一、环境配置 1. huggingface 镜像下载 sentence-transformers 开源词向量模型 import os# 设置环境变量 os.environ[HF_ENDPOINT] https://hf-mirror.com# 下载模型 os.system(huggingface-cli download --resume-download sentence-transformers/paraphrase-multilingual-…...

100个GEO基因表达芯片或转录组数据处理之GSE126848(003)

写在前边 虽然现在是高通量测序的时代&#xff0c;但是GEO、ArrayExpress等数据库储存并公开大量的基因表达芯片数据&#xff0c;还是会有大量的需求去处理芯片数据&#xff0c;并且建模或验证自己所研究基因的表达情况&#xff0c;芯片数据的处理也可能是大部分刚学生信的道友…...

1. Presto基础

该笔记来源于网络&#xff0c;仅用于搜索学习&#xff0c;不保证所有内容正确。文章目录 一、presto基础操作二、时间函数0、当前日期/当前时间1、转时间戳1&#xff09;字符串转时间戳 &#xff08;推荐&#xff09;2&#xff09;按照format指定的格式&#xff0c;将字符串str…...

ChatGPT可以帮你做什么?

学习 利用ChatGPT学习有很多&#xff0c;比如&#xff1a;语言学习、编程学习、论文学习拆解、推荐学习资源等&#xff0c;使用方法大同小异&#xff0c;这里以语言学习为例。 在开始前先给GPT充分的信息&#xff1a;&#xff08;举例&#xff09; 【角色】充当一名有丰富经验…...

20240111在ubuntu20.04.6下解压缩RAR格式的压缩包

20240111在ubuntu20.04.6下解压缩RAR格式的压缩包 2024/1/11 18:25 百度搜搜&#xff1a;ubuntu rar文件怎么解压 rootrootrootroot-X99-Turbo:~/temp$ ll total 2916 drwx------ 3 rootroot rootroot 4096 1月 11 18:28 ./ drwxr-xr-x 25 rootroot rootroot 4096 1月…...

YOLOv5改进 | 检测头篇 | ASFFHead自适应空间特征融合检测头(全网首发)

一、本文介绍 本文给大家带来的改进机制是利用ASFF改进YOLOv5的检测头形成新的检测头Detect_ASFF,其主要创新是引入了一种自适应的空间特征融合方式,有效地过滤掉冲突信息,从而增强了尺度不变性。经过我的实验验证,修改后的检测头在所有的检测目标上均有大幅度的涨点效果,…...

第十三章 接口测试(笔记)

一、接口测试分类 内部接口:测试被测系统各个子模块之间的接口,或者被测系统提供给内部系统使用的接口 外部接口: 1.被测系统调用外部的接口 2.系统对外提供的接口 接口测试重点:检查接口参数传递的正确性,接口功能的正确性,输出结果的正确性,以及对各种异常情况的容错…...

Github搭建图床 github搭建静态资源库 免费CDN加速 github搭建图床使用 jsdelivr CDN免费加速访问

Github搭建图床 github搭建静态资源库 免费CDN加速 github搭建图床使用 jsdelivr CDN免费加速访问 前言1、创建仓库2、开启 gh-pages页面功能3、访问测试 前言 写博客文章时&#xff0c;图片的上传和存放是一个问题&#xff0c;使用小众第三方图床&#xff0c;怕不稳定和倒闭&…...

Airtest-Selenium实操小课②:刷B站视频

1. 前言 上一课我们讲到用Airtest-Selenium爬取网站上我们需要的信息数据&#xff0c;还没看的同学可以戳这里看看~ 那么今天的推文&#xff0c;我们就来说说看&#xff0c;怎么实现看b站、刷b站的日常操作&#xff0c;包括点击暂停&#xff0c;发弹幕&#xff0c;点赞&#…...

Linux chmod命令详解

Linux chmod&#xff08;英文全拼&#xff1a;change mode&#xff09;命令是控制用户对文件的权限的命令 Linux/Unix 的文件调用权限分为三级 : 文件所有者&#xff08;Owner&#xff09;、用户组&#xff08;Group&#xff09;、其它用户&#xff08;Other Users&#xff09…...

求幸存数之和 - 华为OD统一考试

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 给一个正整数列nums,一个跳数jump,及幸存数量left。运算过程为:从索引为0的位置开始向后跳,中间跳过 J 个数字,命中索引为 J+1 的数字,该数被敲出,并从该点起跳,以此类推,直到幸存left个数为止。…...

【QML COOK】- 008-自定义属性

前面介绍了用C定义QML类型&#xff0c;通常在使用Qt Quick开发项目时&#xff0c;C定义后端数据类型&#xff0c;前端则完全使用QML实现。而QML类型或Qt Quick中的类型时不免需要为对象增加一些属性&#xff0c;本篇就来介绍如何自定义属性。 1. 创建项目&#xff0c;并编辑Ma…...

前端页面优化做的工作

1.分析模块占用空间 new (require(webpack-bundle-analyzer).BundleAnalyzerPlugin)() 2.使用谷歌浏览器中的layers&#xff0c;看下有没有影响性能的模块&#xff0c;或者应该销毁没销毁的 3.由于我们页面中含有很大的序列帧动画&#xff0c;所以会导致页面性能低&#xff0…...

Spark六:Spark 底层执行原理SparkContext、DAG、TaskScheduler

Spark底层执行原理 学习Spark运行流程 学习链接&#xff1a;https://mp.weixin.qq.com/s/caCk3mM5iXy0FaXCLkDwYQ 一、Spark运行流程 流程&#xff1a; SparkContext向管理器注册并向资源管理器申请运行Executor资源管理器分配Executor&#xff0c;然后资源管理器启动Execut…...

关于鸿蒙的笔记整理

提示&#xff1a;有使用过 vue 或 react 的小伙伴更容易理解 知识点强调&#xff1a; ArkTS所有内容都不支持深层数据更新 UI渲染 文章目录 一、关于样式1 . 默认单位 vp2 . 写公共样式 二 、 加载图片三 、 自定义构建函数 Builder四、构建函数-BuilderParam 传递UI五 、 父子…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...