unity学习笔记-有关打包安卓apk的一些注意事项

有关打包安卓apk的一些注意事项

打包到build project的时候报错

第一个原因:可能是你的项目路径上存在了中文,比如项目的根文件夹名称里包含了中文
为什么会出现这个问题,很简单,当我和同事进行协同开发的时候,需要把代码同步到git上,为了以防pull和push的时候出现问题,第一个需要做的就是备份,而我做的最简单粗暴的备份方法就是直接复制粘贴
这么一做的话就会出现一个问题
在这里插入图片描述
如图所示,他的命名会以副本的名称进行,导致这个项目栓的根目录就变成了中文,在项目打开的时候是没有问题的,但是一旦到打包的时候就会出现build project失败的警报,然后是一堆你看不懂的错,其中包括gradle和一些路径上的error,这些都不是最根本的问题,核心问题还是路径存在中文

后面如果在打包过程中出现了问题我都会在这里进行更新的~

报错信息里出现了jdksdk等

这个问题相对比较简单,我前面的帖子里应该也有写了原因,就是因为jdk和sdk,ndk在不同的unity版本里兼容的程度是不一样的,需要匹配unity版本的这些jdksdkndk环境才能正确的进行打包,建议是在安装unity版本的时候就通过官方的路径去安装这个安卓的环境,这样能确保不会因为环境的问题导致打包失败

加油~

2021.7.30更新

打包报错显示andriodfestxml文件版本有问题

这个我的原因是使用了uniwebview插件,而这个插件所支持的安卓版本必须至少是21的
也就是下面这个玩意儿
在这里插入图片描述
所以必须在playersetting里修改最低版本的apilevel,否则这个插件不支持低版本的安卓api会在打包的时候就报错的。估计是因为不同的版本里的方法修改了或者删除了的原因

2021.7.31更新

有关urp线管环境打包的时候的一些注意事项

如题,当我在编辑器里制作了如诗如画的烟花特效之后,一心满意的打包成安卓版的时候,一打开,哦吼发现如诗如画的后处理特效消失了
任凭我如何修改他都无动于衷
中间尝试过直接把项目拉到标准的urp环境下,虽然在编辑器和pc端后处理能够看得到效果,但是一打包成apk后处理就消失了
不过也不能说完全消失,模糊的特效还是在的,但是hdr的相关效果就是真的一点都没了
经过和另一个认识的u3d大佬交流以及自己在网上查了相关的一些资料,发现可能是移动端打包的时候没有开启hdr的设置
但是网上说的rendering path的位置在我的209版本里是根本找不到的
虽然昨天为了打球直接放弃了继续研究,不过还是有在思考八九不离十就是因为hdr的设置没有调好
今天一早我就在满屏幕的找hdr 的位置,在网上说的graphics里确实是没有这个选项
不过我仔细想了想,看了一下相机的设置发现里面有一个output的设置,里面包含了一个hdr于是我就试着关了它, 发现运行的hdr也跟着消失了
在这里插入图片描述
我觉得这个方向是对的,于是我又按照这个思路去找相机里使用的pipeline settings
我想着这个有点熟悉,好像就是settings里的在这里插入图片描述
这个玩意儿(注意这是在标准的urp环境下的,如果是通过在packagemanager里下载urp的方式搭配的环境可能有所不同,有机会的话我会去试试是不是和标准的urp环境一样也是调整这里)
然后点击第二三四个,你会发现一个很关键的东西,那就是高质量的配置信息里
在这里插入图片描述
左下角的qualit里的hdr是开启的,但是中低画质的quality的hdr是关闭的
到这里大家应该都知道是什么原因导致了安卓打包出来和pc编译器环境下的hdr不同了吧
意思就是
程序会在运行的时候查看当前运行的环境的配置,如果能够承载高画质的渲染,那么就会开启高画质的配置,如果运行环境没那么好(安卓端),就会识别到无法承载高画质的渲染,从而退而求其次的找到中低画质的配置,这个时候由于中低画质都没有开启hdr,所以就会导致在安卓端口使用的时候urp的后处理hdr相关的内容全部消失了~

在编辑器里设置的hdr亮度过曝

如果在材质球里hdr的强度(intensity)过高的话,在导出到安卓的时候会出现过度曝光,也就是会出现黑点,需要控制intensity值,测试了一下好像小于-1就会过曝了
这里还有一个小问题,就是在不同的场景下好像这个问题会有所不同,因为一开始是在其他地方进行特效实验然后才导入到项目里的,在实验的时候打包出到安卓里运行是不会有过曝的这个问题的.时间关系就先修正一下intensity吧~

2021.9.16更新
发现了原因
使用urp管线渲染场景的时候,电脑和安卓的渲染方式不同,所以在编译的时候电脑运行出来的结果总是会和安卓有所偏差,其实偏差还能接受,但如果是像bug一样的话就不行了,所以上面这个过曝的问题就是在时候后处理的时候没注意到导致的
在这里插入图片描述
如图,电脑端默认的tonemapping模式是中间那个,中立,这在电脑端和安卓其实都能跑,也都能显示正常,就是当hdr的强度过高的时候,这个模式就会自闭,导入在安卓的时候好像不能承受太高的亮度一样,直接在最亮的地方爆出了黑色的区域,十分的影响观感
那么如何解决呢,需要把这个模式修改为aces才行,这个让我突然想起之前不知道在那一个大佬的帖子里有提一嘴这个模式,不过当时没有特别指出在安卓和电脑端的区别就没太在意
使用这个模式的话再高的hdr的intensity安卓也能正常显示~
就是需要一开始的时候就注意,如果是安卓项目的话,需要在一开始的时候就用这个模式去进行后处理的调整,不然不同的模式下,他们的bloom等效果呈现出来的效果是不一样的

VFX特效在近距离时出现拉长的bug

在这里插入图片描述
原因是红框里的api没有选对,之前在优化的时候看了别人的教程发现会把vlukan删掉,但是在删掉了之后vfx的特效就出现了问题,我就试了一下重新加了这个apis,发现安卓打包出来之后又可以正常显示了
当前还是为了特效加上吧

编辑器正常,打包成apk在真机上出现问题

这两天在项目打包的时候发现了这个问题,在真机上跳转场景是正常的,但是打包到apk上就跳转失败了,找原因找了很久,最后发现是在跳转场景的时候下一个场景里出现了两个audiolistener,再往下找发现是上一个场景有一个脚本用了dont destroy,那个脚本挂载的对象刚好是相机,而相机上刚好又挂载着audiolistener,所以导致了跳转到下一个场景的时候出现了两个audiolistener,然后导致了下一场景后面的脚本逻辑都失效了,解决了这个问题打包在真机上测试就正常了.这个具体的原因还不清楚,反正打包到真机上就是老是会出现这个那个的问题,而且都是在编辑器环境时看不出来的

原先一直正常的打包,因为更换了一个aar的插件包,导致无法通过gradle的编译

解决方法: 先 关掉 unity项目 进入项目文件,找到library和logs 删掉
这两个文件夹里的东西(重新打开项目时如果没有的话会自动生成,类似缓存的东西)重新打开项目,然后打包即可
原因: 我更换的aar插件包已经确定里面的libs没有重复的依赖,而我所做的操作只有一个,就是更换了这个aar包的名称
当然我也试过把aar的包名重新改回原来的,但是也还是在gradle编译的时候报错了,因此原因就只有一个,在项目加载的时候library里不会自动删除已经删掉的文件(至少aar包是没有的, 因此在我打包了一个不同名称但其他都一样的aar包时,编译的时候他会一并把原来的和现在的aar一起进行打包,从而导致编译失败)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淳杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值