安卓包在真机上安装时的“风险提示”问题

news2024/11/15 8:30:51

1)安卓包在真机上安装时的“风险提示”问题
​2)iOS下AssetBundle的加载疑问
3)特效用粒子系统,模拟器里出现花屏问题
4)IL2CPP编译的Protobuf,反射类运行时报空


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

Android

Q:最近在安卓真机上安装游戏的过程中突然出现了风险提示(以前没有)。有的手机甚至需要输入密码授权才能安装。

如图:

不知道有没有大佬们最近也遇到了这样的问题,可否提供个修改的思路?

A:首先是32位问题,这个是必然要升级的不要挣扎了。至于风险提示和密码授权,都是国内手机的问题。Rom里面限制了你不上架它的商店就会有这种提示。OPPO限制了adb直接安装,每次要密码授权。

这些都属于研发层面无从下手的问题,能做的就是建议玩家别用国产手机。

感谢江南@UWA问答社区提供了回答


AssetBundle

Q:iOS下AssetBundle加载时候Animator上面丢失AnimatorController。

问题:
1.0版本里A.prefab是打在AssetsBundle1里面,A.prefab引用的AnimatorController 是打在AssetsBundle2里面,A.prefab上引用的其他资源在AssetsBundle3里面。

2.0版本热更新时,改变了引用文件的文件夹,A.prefab上引用的AnimatorController生成的Bundle变到了AssetsBundle3里面,A.prefab上引用的其他资源生成的Bundle变到AssetsBundle2里面。

A.prefab所在的AssetsBundle1没有变化,所以热更新下去的是AssetsBundle2和AssetsBundle3。

热更新之后加载AssetsBundle2和AssetsBundle3,再加载AssetsBundle1,运行后发现A.prefab上的Animator组件还在,但是上面的runtimeAnimatorController丢失了,变成了Missing。

有人遇到这个问题吗?

A1:有一些排查思路,首先在Android平台看下是否也有问题,排除下是否是与平台相关。另外在出问题的机器上预制体模式,如果正常则使用AssetBundle模式来加载看下是否正常,如果是Bundle问题,那可以完全删除涉及到的Bundle重新打一遍再试一下。

感谢Knight-132872@UWA问答社区提供了回答

A2:Unity上遇到这种问题,最好把A、B、C 3个AssetsBundle包先删除,再打包,让Unity全新生成,应该就好了。

感谢1 9 7 3-311135@UWA问答社区提供了回答


Simulator

Q:游戏特效用了粒子系统,其他平台都正常,就在模拟器下出现了花屏问题,时不时地花屏闪烁。

特效用了粒子系统的Mesh和Billboard两种模式,然后粒子上挂材质球,是用自己写的Shader,但是切换成Unity自带的URP粒子系统Shader,也一样花屏。不用粒子系统就不会花屏。

用RenderDoc抓帧,只分析出部分花屏,是用Mesh模式的粒子网格,顶点发生拉扯偏移产生的。但是其余花屏,查不出是哪个对象产生的问题,谁知道是怎么回事吗?

A1:可以尝试换一下Shader的采样精度。

感谢NG週@UWA问答社区提供了回答

A2:可以尝试一下把粒子特效对应Shader变量类型从fixed改为half或者float。

感谢beikeshell@UWA问答社区提供了回答

针对以上问题,有经验的朋友欢迎转至社区交流分享:


Build

Q:IL2CPP编译的Protobuf,反射类运行时报空。
问题发生时,会闪崩,闪崩日志信息:
Error_Not_Null:"c# exception:System.TypeInitializationException: The type initializer for ‘abcConfigReflection’ threw an exception. —> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.ExecutionEngineException: Attempting to call method 'Google.Protobuf.Reflection.ReflectionUtil+ReflectionHelper`2[[System.IntPtr&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]::.ctor’ for which no ahead of time (AOT) code was generated.\n
...

(完整日志信息,请见原问答。)

看下来是因为AOT编译时,代码剔除所致,问题非常偶现。我们的QA基本上没有跑出来过这个问题,但是放到外网就有一堆玩家遇到此问题。蹊跷的是哪怕同一个手机也是偶然才报。

Proto GitHub项目有人提过这个问题,包括下面回复主要提了两点:
1. Linker包含Google.Protobuf程序集
2. AOT编译器不会为T为Any Enum的泛型方法,针对枚举参数泛型方法创建显式调用类
https://docs.unity3d.com/cn/current/Manual/ScriptingRestrictions.html

和我这个问题不同点是,abcConfigReflection是一个类,不是枚举,而且整个项目这个类会有很多。

我用的Proto 3.6.1版本,而且Proto也在3.6.0版本修改了
> AOT generics issues in Unity/il2cpp have a workaround (see commit 1b219a1 for details)

Protobuf源码确实加了强制反射的代码:

    static FileDescriptor()
    {
        ForceReflectionInitialization<Syntax>();
        ForceReflectionInitialization<NullValue>();
        ForceReflectionInitialization<Field.Types.Cardinality>();
        ForceReflectionInitialization<Field.Types.Kind>();
        ForceReflectionInitialization<Value.KindOneofCase>();
    }

当然我有加Google.Protobuf程序集到Linker,还是不能解决。后来我加了Assembly-CSharp程序集到Linker,也就是整个自定义代码全部不剔除,目前因为不方便放外网,也不清楚有没有解决这个问题。

使用Protobuf序列化数据按讲是常规操作,相信应该有很多人遇到,不知道大家处理方案是什么,有没有解决这个问题?

针对以上问题,有经验的朋友欢迎转至社区交流分享

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方问答社区:answer.uwa4d.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/171416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音商品机会潜力分析报告竞赛-3等奖作品分析

文章目录数据集介绍需要1以及结论需求2以及结论推荐开发商品A&#xff1a;鹊牌 三合一爆米花球形焦糖味奶香味100g玉米50g糖 50克油 包邮推荐开发商品B&#xff1a;【云南松茸菌汤包】熬汤必备 正宗云南产地货 60g/袋 包邮推荐开发商品C&#xff1a;推荐_【三只松鼠_巨型零食大…

力扣 1807. 替换字符串中的括号内容

题目 给你一个字符串 s &#xff0c;它包含一些括号对&#xff0c;每个括号中包含一个 非空 的键。 比方说&#xff0c;字符串 “(name)is(age)yearsold” 中&#xff0c;有 两个 括号对&#xff0c;分别包含键 “name” 和 “age” 。 你知道许多键对应的值&#xff0c;这些…

年度盘点(四)丨2022计讯物联企业文化活动精彩盘点

2022年&#xff0c;计讯物联聚焦企业文化软实力&#xff0c;以文化力引领企业发展力和核心竞争力&#xff0c;以塑造一流队伍为核心&#xff0c;不断找准发力点&#xff0c;深度策划系列企业文化活动&#xff0c;不断促进企业文化与公司业务的融合&#xff0c;持续增强全体计讯…

「自控原理」3.3 稳定性与稳态误差、时域校正

本节介绍稳定性分析的原理以及代数稳定性判据&#xff08;劳斯判据&#xff09; 本节介绍系统稳态误差的定义及计算方法 本节介绍时域校正方法 文章目录稳定性分析稳定的充要条件与必要条件劳斯判据-Routh例题两种特殊情况问题辨析稳态误差误差与稳态误差的定义计算稳态误差的一…

【手写 Vue2.x 源码】第三十篇 - diff算法-比对优化(上)

一&#xff0c;前言 上篇&#xff0c;介绍了diff算法-节点比对&#xff0c;主要涉及以下几点&#xff1a; 介绍了 diff 算法、对比方式、节点复用实现了外层节点的 diff 算法不同节点如何做替换更新相同节点如何做复用更新&#xff1a;文本、元素、样式处理 本篇&#xff0c…

在线教育-谷粒学院学习笔记(五)

文章目录1 内容介绍2 课程分类前端实现3 课程列表功能实现4 课程管理概括5 添加课程信息后端实现6 添加课程信息前端实现7 前端完善1 内容介绍 添加课程分类前端实现课程分类列表显示功能&#xff08;树形结构&#xff09;课程管理模块需求添加课程基本信息功能 2 课程分类前…

如何设置OpenFeign请求超时

Feign和OpenFeign介绍 Feign集成了Ribbon、RestTemplate实现了负载均衡的执行Http调用&#xff0c;只不过对原有的方式&#xff08;RibbonRestTemplate&#xff09;进行了封装&#xff0c;开发者不必手动使用RestTemplate调服务&#xff0c;而是定义一个接口&#xff0c;在这个…

byzer笔记本使用

byzer笔记本使用 数据源的定义 对于etl&#xff0c;起始的第一步往往是定义一个数据来源。 设置数据源 通过设置 -> 外部数据源 -> 新增可以新增jdbc类型的数据源。 命令指定数据源 notebook中可以使用connect命令进行jdbc数据源的指定: > SET user"root&q…

Elasticsearch(四)--一文弄懂ES的映射操作

一、前言 上一章学习了ES的索引相关操作&#xff0c;那么这一章就轮到映射&#xff0c;了解映射操作最重要的点就是去学习ES的数据类型。那么本章我们会了解到映射的创建、查看和修改操作&#xff0c;然后详细介绍ES中的基本数据类型和复杂的数据类型&#xff0c;并且会对常用…

解决ElementUI导航栏重复点菜单报错问题

在使用ElementUI中的导航时&#xff0c;默认情况下如果重复点击某选项&#xff0c;会报错。 element-ui.common.js?b705:3354 Error: Avoided redundant navigation to current location: “/home/home1”. at createRouterError (vue-router.esm.js?8c4f:2060) at createNa…

Java IO流 - 打印流详细使用介绍

文章目录打印流打印流基本使用输出语句重定向打印流 打印流基本使用 打印流: 作用&#xff1a;打印流可以实现更方便、更高效的打印数据到文件中去。打印流一般是指&#xff1a;PrintStream&#xff0c;PrintWriter两个类。 可以实现打印什么数据就是什么数据&#xff0c;例如…

【GD32F427开发板试用】06-硬件I2C软件I2C驱动0.91OLED

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;Stark_GS I2C 简介及特点 并行总线至 I2C 总线协议的转换及接口&#xff1b;同一接口既可实现主机功能又可实现从机功能&#xff1b;主从机之…

在线教育-谷粒学院学习笔记(四)

文章目录1 内容介绍2 阿里云存储OSS3 Java代码操作阿里云oss4 搭建阿里云oss项目环境5 上传头像后端实现6 Nginx使用7 上传头像前端实现8 课程分类管理介绍9 EasyExcel工具10 课程分类添加功能1 内容介绍 添加讲师实现头像上传功能 阿里云oss存储服务 添加课程分类功能 使用Ea…

欧拉的“她力量”,如何为品牌注入新能量?

文|智能相对论作者| Kinki近日&#xff0c;百度营销联合CBNData推出的《2022新能源汽车趋势洞察》正式发布&#xff0c;报告显示&#xff0c;随着新能源汽车的普及&#xff0c;新中产女性已成为了“消费新势力”。女性更偏爱新能源汽车已不是新鲜观点&#xff0c;调研显示&…

物理主机telenet登录ensp虚拟网络设备并显示配置python脚本

一、物理主机telnet登录ensp虚拟网络设备 1、物理主机配置 1.1、物理主机环回口虚拟网卡配置 见本人博客:Ensp用windows回环口连接cloud配置_ensp环回口配置_林锋Space的博客-CSDN博客https://liulinfeng.blog.csdn.net/article/details/128098737 1.2、物理主机telnet开启 …

大数据的整体见解

如何建设高效的数据模型体系&#xff0c;使数据易用&#xff0c;避免重复建设和数据不一致性&#xff0c;保证数据的规范性&#xff1b;如何提供高效易用的数据开发工具&#xff1b;如何做好数据质量保障&#xff1b;如何有效管理和控制日益增长的存储和计算消耗&#xff1b;如…

文件下载 response响应ContentType与a标签download属性

参考资料 MediaType介绍了解HTML/HTML5中的download属性header中Content-Disposition的作用 目录一. ContentType二. a标签download属性2.1 下载同源静态资源文件2.2 后台可省略Content-Disposition一. ContentType 我们在进行文件下载的时候&#xff0c;后端往往需要通过如下…

CSRF(跨站请求伪造)

一、csrf是什么CSRF&#xff08;Cross Site Request Forgery&#xff0c;跨站请求伪造&#xff09;。是一种对网站的恶意利用&#xff0c;通过伪装来自受信任用户的请求来利用受信任的网站。原理是攻击者构造网站后台某个功能接口的请求地址&#xff0c;诱导用户去点击或者用特…

uni-app 中实现文件和图片的上传-H5

之前写过一篇上传的文章&#x1f4d5;&#xff0c;但是那篇文章仅仅只能实现上传图片的功能&#xff0c;而且代码写的比较乱&#xff0c;看起来很繁杂&#xff0c;最近有幸又遇到了上传图片和文件的需求&#xff0c;在完成这个功能后&#xff0c;整理一下&#xff0c;希望能给需…

第十四届蓝桥杯单片机组学习笔记(2):按键

第十四届蓝桥杯单片机组学习笔记&#xff08;2&#xff09;&#xff1a;按键前言区分高低电平驱动按键消抖软件消抖触发处理的方式矩阵键盘最简单常用的人机交互手段——按键 前言 实现按键检测需要解决的问题&#xff1a; 按键是低电平按下还是高电平按下&#xff1b;按键消…