解决因第三方sdk,unity打包出来的apk在android 5.0以下矢量图兼容问题的崩溃

本文介绍了如何在Unity中解决AndroidVector兼容性问题,特别是针对Android 5.0以下版本。文章提供了更改Unity构建系统的方法,并详细说明了如何处理特定第三方SDK(如Helpshift)在Gradle构建模式下的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android一直以来,对往下低版本的兼容做的就不好,而且工具流没事还总变,搞起来真的是让人秃头
android 5.0 以后开始能使用矢量图功能了,也就是Android Vector,但是5.0以下没这个功能呀,所以你在编译的时候,需要增加一个编译参数和静态声明来兼容这个问题。
一般这个步骤是在 android studio 下面完成的,对于开发纯粹的 android 项目来说,没什么难度,都有比较完善的解决方案。
举例:
https://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-91cbafa87c88
https://blog.youkuaiyun.com/u010335298/article/details/51840805

随便找找就有,但是在unity里这个问题可能就比较复杂了。
首先我们就要更改unity的BuildSystem,因为只有这样,我们才能像android studio 一样,使用gradle进行编译。
这一步还是比较简单的
这里写图片描述
在playsetting里可以直接进行切换,还有一定要选上 Gradle Template,有了这个模板,我们才能加上我们的编译指令。
打开模板,根据上面的文章+入我们的指令,有一点需要注意。

这里写图片描述

这个标签如果让unity自动生成的话,它会将StreamingAssets下我们所有的资源都给+上来,这对于本地资源多的工程可能是个灾难,因为这个地方看gradle源码,是有长度限制的,参数不能超过255个,但是好在这里是可以用后缀名进行过滤的,所以我们可以不依赖unity,而对这里进行手工编辑。

以上方法就可以应对大部分的第三方sdk导入了,但是偏偏就有一些一般手段应对不了的sdk存在,就比如说我需要接入的 helpshift。
了解这个东西的同学肯定知道,它提供的sdk一般是这种样子的

这里写图片描述

这种东西,在unity的Internal模式下没问题,是可以直接编译的,但是换到 gradle下就不行了,如果是正常的android studio下没有问题,但是unity下,helpshift的这个android子工程,是引用不到主工程底下的支持库的包的,而且现在android支持库的包都打包成了aar,这个东西不像以前的jar可以用路径引用(所以有时候纯自动的东西也有它不好的地方)。

所以如果我们想让gradle编译通过,首先第一步就是,将helpshift的这个文件夹,打包成aar的存在,幸好官方提供了一个python写的插件工具
地址:
https://developers.helpshift.com/unity/troubleshooting-android/

最后我们将需要的支持库,放进工程里就ok了,26版本之后的支持库,将不会下载到本机的android sdk目录下了,只能是通过联网获得。这里提供个网站,你可以在上面下载到自己需要的aar库。

https://mvnrepository.com/

注意:helpshift 打包成 aar 之后,就只能用 gradle 模式进行打包了,Internal模式就彻底废了,因为它的aar中没有class.jar文件,所以Internal是无法通过的(没打成aar时它也没有那个jar包)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值