Google上架之aab+pad(install-time)方案踩坑

起因

最近因为公司项目包体增大,需要考虑分包的方案。看到了pad,官方也是支持的。
于是在网上找了一些关于pad打包的一些教程,例如这个(https://blog.csdn.net/kenkao/article/details/128125276)。幸运的是,通过这个方法,顺利打出了aab包,也看到了aab包的base大小缩小了很多。但是,问题来了,这个包上架到google后,下载下来的apk,是能正常安装运行的,但是如果通过google自己下载安装,就会出问题,安装失败了,看似安装成功,但是打开后显示初始化失败。按照这个教程思路,网上找了很多文章,大都跟这个方案大差不差。我的gradle版本是4.0.1,jdk版本是1.8,as版本是2021.3.1,应该也是大于4.0的,所以网上很多说版本要求的,我应该是都满足了,就是不知道问题出在哪。
https://developer.android.com/guide/playcore/asset-delivery?hl=zh-cn官方文档我也看了,在一个点上有差距,就是unity的asset资源应该怎么处理。当然官方文档上并没有介绍的很详细,但是理解成吧unity的资源全部放在新创建的分包文件夹里确实也没毛病,所以我这个问题找了半天也没找好,如果有哪位大佬,知道问题,可以留言,万分感谢。

解决方案

当然今天不只是来说问题的,说一下我后来的解决办法,其实unity中已经集成了pad的分包方案:在这里插入图片描述请添加图片描述Split Application Binary应该就是之前的obb方案了,Export For App Bundle会把unity中内置路径(Resources等)的一些资源打进去,这样就实现了分包操作。
这样勾选后,可以直接打出pad(install-time)的分包android工程,依赖以及引用都给你添加好了,直接就是一键式操作。
当然我想说的是这个分包对于unity资源的处理,分包文件夹(UnityDataAssetPack)和unitylibrary文件夹都会data.unity3d的资源但是,我的理解是,工程中绑定的资源,会打到unitylibrary文件中,resources文件夹这种unity内置路径的资源会打到分包文件夹(UnityDataAssetPack)中,所以其实还是需要你对工程的资源进行一定的处理,不要全部绑定到组件上,还是要走正式的动态加载流程,这样才方便后续的分包。

测试

最后就是aab验证的环节了https://developer.android.google.cn/studio/command-line/bundletool?hl=zh-cn,bundletool可以进行aab转apks,但是这一步对jdk版本有要求,我的1.8转失败了,高版本是OK的,可以试试1.17,然后使用命令安装apks到模拟器测试(D:\workspace\AabToApk>java -jar bundletool.jar install-apks --apks=D:\workspace\AabToApk\output.apks --adb=D:\workspace\AndroidEn\sdk\platform-tools\adb.exe),我这里指定了adb的路径,测试OK。

结尾

到此这个坑我虽然也没明白怎么回事,但问题算是解决了,今天特此分享给大家,希望能给大家一些帮助。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值