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

导致Resources文件夹的资源在Android打包后丢失的原因

1)导致Resources文件夹的资源在Android打包后丢失的原因
2)GPU Culled Primitive中的xyz三平面剔除与视锥体剔除有什么区别
3)按照不升级Unity引擎小改动快速适配安卓16KB页面要求操作后还是闪退


这是第451篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com
UWA QQ群:793972859

From UWA AI 问答

Q:请问Resources文件夹的资源在Android打包后丢失是什么导致的呢?有resources.load显式调用的。

A:Resources文件夹中的资源在Android打包后丢失,尽管有Resources.Load显式调用,通常并非资源未被打包进APK,而是由以下几种原因导致加载失败或资源无法访问:

1. 路径与大小写问题
Resources.Load的路径是不区分大小写的,但某些Android设备(尤其是定制ROM)的文件系统对路径敏感。如果代码中指定的路径与实际文件夹/文件名的大小写不完全一致,可能在部分设备上加载失败。确保路径字符串与Resources文件夹内的资源命名(包括嵌套文件夹)保持一致。

此外,路径应使用正斜杠“/”,且不包含“.asset”等扩展名。

2. 构建过程中资源被剥离或冲突

  • 同名资源冲突:若项目中存在多个Resources文件夹,并且包含同名但不同内容的资源,Unity在构建时行为不确定,可能导致错误的资源被打包或覆盖。
  • Addressables或AssetBundle冲突:如果同一资源同时被标记为Addressable或打包进AssetBundle,又存在于Resources文件夹,可能会因构建流程混乱导致资源引用异常。建议避免资源重复管理。

3. 热更新或补丁机制干扰
使用Application Patching或自定义热更方案时,若处理不当可能导致StreamingAssets目录下原始资源被替换或删除。虽然Resources资源通常打包在主APK内,但在某些增量更新逻辑中,如果误操作了内部文件结构,也可能影响资源读取。

4. 安装路径变化(特定厂商手机)
部分国产手机(如华为、荣耀)将应用安装到SD卡时,路径中可能出现特殊字符(如 -),若项目中有自定义资源加载逻辑依赖路径拼接,未正确转义可能导致文件打开失败。虽然Resources.Load本身不受此影响,但如果涉及从外部加载补充资源并动态注册,则需注意。

5. 资源未实际打入包体
虽然Resources文件夹下的资源默认会被打包,但以下情况可能导致例外:

  • 构建过程中出现异常中断,导致资源未完整写入。
  • 使用了条件编译或脚本化构建流程,意外排除了Resources文件夹。

    可通过解压APK文件(位于AndroidStudioProject/app/build/outputs/apk/或Unity导出目录),检查assets/bin/Data/resources.assets是否存在且包含预期资源,以确认资源是否成功打包。

排查建议

  1. 使用UWA GOT Online报告中的Resources.Load调用详情页,查看该资源的加载次数、耗时及是否返回null。
  2. 在真机运行时添加日志,捕获Resources.Load返回结果,确认是否为空。
  3. 检查目标设备的存储路径和安装方式,排除厂商ROM特殊行为影响。
  4. 清理构建环境,重新执行完整构建流程,避免增量构建残留问题。

综上,最可能的原因是路径问题或构建过程中的资源冲突,建议优先验证资源是否存在以及加载路径准确性。

分享链接:
https://www.uwa4d.com/main/uwa-shared.html?shareId=88f1787d-7dc5-4d8a-91c2-09dc8d9c2258

From UWA AI 问答

Q:报告中的GPU Culled Primitive中的XY平面和Z平面剔除,和视锥体剔除是一样的吗?

A:GPU Culled Primitive中的剔除机制与视锥体剔除密切相关,但“XY平面和Z平面剔除”这一表述并不准确,实际并不存在独立的“XY平面”或“Z平面”剔除方式。通常所说的图元剔除主要指视锥体剔除(Frustum Culling),它是一种基于摄像机视锥空间的裁剪技术,判断物体是否位于可视范围内。

在图形渲染流程中,图元(如三角形)经过顶点着色器处理后,会进行一系列裁剪操作。其中,被裁剪掉的图元数量(culled_primitives)反映的是那些经过顶点计算后,最终因不在摄像机视野内而未被光栅化的图元。这部分图元的产生,主要受视锥体剔除机制影响 —— 即只有处于视锥内的图元才会继续后续渲染流程,其余则被剔除。

此外,还可能存在其他类型的剔除,例如:

  • 遮挡剔除(Occlusion Culling):用于剔除被其他物体完全遮挡的对象;
  • 背面剔除(Backface Culling):剔除面向摄像机背面的图元; 但这些通常不计入GPU图元输入统计中的culled_primitives主要部分。

根据本次运行数据分析,项目中图元处理情况良好,input_primitives与culled_primitives的比例处于合理范围,未发现因过度图元提交或严重剔除浪费导致的GPU顶点计算压力问题。因此,当前场景的剔除效率正常,无需针对图元剔除做额外优化。

综上,所谓的“XY平面和Z平面剔除”并非标准术语,实际起作用的是视锥体剔除,它是决定哪些图元被保留或剔除的核心机制之一。

GPU Culled Primitive中的“XY平面剔除”和“Z平面剔除”是视锥体剔除(Frustum Culling)在GPU硬件层面的具体实现阶段,它们共同构成了完整的视锥体剔除过程。

具体来说,视锥体剔除从逻辑上判断一个图元是否在摄像机的可视范围内(即视锥体内)。而在GPU执行时,这一过程被分解为多个连续的裁剪测试阶段:

  • Facing & XY Plane Test:此阶段主要检测图元是否位于视锥的X、Y方向边界内,并进行背面剔除(Facing Culling)。若图元在X或Y轴方向超出视锥范围,或为背向相机的面,则在此阶段被剔除。
  • Z Plane Test:此阶段检测图元在深度方向(Z轴)是否超出近裁剪面(Near Clip)或远裁剪面(Far Clip)。若图元距离过近或过远,则被剔除。
  • Sample Test(微图元剔除):进一步剔除那些屏幕投影面积过小、无法覆盖任何像素采样点的图元。

这些阶段按顺序执行,每一步都会统计被剔除的图元数量。因此,“XY平面”和“Z平面”剔除并非独立于视锥体剔除,而是其内部细分的裁剪步骤。

 

分享链接:
https://www.uwa4d.com/main/uwa-shared.html?shareId=51a667fc-208e-4e0d-9d3d-a36a1bf2de39


From 问答社区

Q1:在UWA问答社区看到帖子:
https://answer.uwa4d.com/question/68d4e378244ce21ce9ec0920

最近刚好我的项目也碰到了这个安卓16KB的问题,按照这个贴子实操还是一直闪退,想请教一下大家有碰到闪退问题吗,是如何解决的呢?

A:更新对应的so库,AS自己查看,不是显示16KB就得换,正常应该这么显示:

 

 

 

Q2:这些都换了,谷歌的检测工具都能通过了,目前就是闪退。

A:很明显,假现象,工程里面绝对还有其它不符合标准的,可以空包一个一个往里面加就知道了。

Q3:我目前用2020版Unity出的空工程,按照上述操作完成之后,还是闪退,基本就没有其他的so。

A1:Unity得升级,最低是2021,升级到2022.3.系列,起码是2022.3.62,有些同大版本,都是不支持的,我问了一下Unity官方那边的人。

A2:试过不行,最后还是升到2022。

A3:可以分析一下闪退日志是否有报错,一般可以定位到问题库。

感谢小肥狼、tommom和小花轮子@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/68d4e378244ce21ce9ec0920

无论是社区里开发者们的互助讨论,还是AI基于知识沉淀的快速反馈,核心都是为了让每一个技术难题都有解、每一次踩坑都有回响。本期分享分别来自UWA AI问答和UWA问答社区,希望这些从真实开发场景中提炼的经验,能直接帮你解决当下的技术卡点,也让你在遇到同类问题时,能更高效地找到破局方向。

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859

http://www.jsqmd.com/news/33310/

相关文章:

  • 2025年江苏医疗器械CE认证服务商权威推荐:江苏电子产品CE认证/江苏电器CE认证/江苏灯具CE认证服务机构精选
  • 银行转账惊魂记:MySQL事务与隔离级别的奇幻冒险 - 详解
  • 量化选股与量化交易第857篇:通达信金妖舞龙 - Leone
  • 2025年外墙柔性腻子粉厂家权威推荐:腻子粉/外墙腻子粉/内墙腻子粉源头生产厂家精选
  • 解决Could not create task …this and base files have different roots
  • 【IEEE出版 | EI检索稳定、速度快 | 连续四届稳定检索】2025年第五届数字化社会与智能系统国际学术会议(DSInS 2025)
  • 2025 年不锈钢护栏厂家最新推荐排行榜:涵盖防撞、桥梁、铝合金、河道等多类型,精选耐腐蚀美观耐用优质品牌
  • 使用gdb调试core文件
  • NewStar_Week3_Web
  • 你真的知道你正在运行哪个 PostgreSQL吗?
  • 2025年污水处理设备厂家权威推荐榜单:盐湖提锂技术/扩散渗析器/扩散渗析系统源头厂家精选
  • docker容器oshi如何获取宿主机的运行状态信息?
  • Java 应用 DevOps 全流程(CICD)闭环 - docker-compose版
  • WebMvcConfigurationSupport vs WebMvcConfigurer 的本质区别
  • 成功拿到备案号 | 详述大模型备案
  • MATLAB与ModBus RTU设备进行串行通信
  • 2025年艾草贴厂家权威推荐榜单:老北京足贴/蒸汽眼罩/泡澡液源头生产厂家精选
  • 封装新纪元
  • 高精度板子
  • 成都恒利泰宽带锥形电感,一颗顶三颗
  • 微算法科技(NASDAQ MLGO)采用动态层次管理和位置聚类技术,修改pBFT算法以提高私有区块链网络运行效率
  • 2025年上海展览特装制作公司权威推荐榜单:标摊设计/标摊装修/展厅设计及施工源头公司家精选
  • 2025年PE-RT管材管件批发厂家权威推荐榜单:ppr电熔管件/PERT电熔管件/PERT2型管件源头厂家精选
  • 2025年透明吹塑HDPE防撞桶改性再生颗粒生产厂家权威推荐:环保连卷袋吹膜级透明HDPE颗粒/挤塑透明HDPE再生颗粒/透明吹塑HDPE水箱改性再生颗粒源头生产商精选
  • 护航“苏超”票务稳健运行!这朵云,靠谱!
  • doris命令show proc /current_queries;
  • 2025 国内靠谱的代理 IP 哪家好选择指南​
  • 2025年石膏基自流平生产商权威推荐:水泥自流平砂浆/石膏自流平砂浆/地面找平自流平源头厂家精选
  • 深入解析:webSocket快速入门
  • 2025年青岛城阳注册个体户服务权威推荐:青岛城阳公司变更服务/青岛城阳变更营业执照机构/青岛城阳公司减资服务机构精选