Unity__Android打包爬坑日记

最近接了一个直播的SDK,准备集成现有的项目里面,由于之前的项目在Android打包时用的是Gradle,而直播SDK要求使用Internal,因此遇到了不少的坑,下面就让我分别罗列出来:

 

坑1:IOException: Win32 IO returned ERROR_BROKEN_PIPE

关于这个网上有不少的解决办法,我的操作是这样,升级JDK到64位就行了。网上有人说把项目移到C盘,我试了发现没用。也有人说删除Assets\Plugins\Android 下的带support字样的谷歌服务,这个方法我试过了,删掉后重新编译时有生成出来了,后面干脆不理会它。

 

坑2:Trying to merge incompatible

这个简单来说就是AndroidManifest.xml之间不兼容。unity这边在打包时会把所有AndroidManifest融合一起,而在融合时出现异常而报错。常见的异常有两种:

1.一些元素定义了两次(例如:在2个不同的AndroidManifest.xml文件中)

2.并且它以某种方式以不同方式定义,因此合并不知道如何将其合并到单个条目中。

解决办法:先找出所有的XML,在Plugins\Android里面。有的藏在aar文件里,有的子文件夹下,还有的jar下。用压缩包方式就可以打开aar和jar了。

我这边项目就是因为com.google.firebase.firebase-iid-17.0.4.aar和com.google.firebase.firebase-measurement-connector-impl-17.0.2.aar的XML共同定义了com.google.firebase.components.ComponentDiscoveryService这么一个服务。我不清楚这个用来干嘛的,删掉了一个就是了。

 

坑3:Make sure you use the same case for your package names

这个超逗,同样是因为AndroidManifest.xml的问题。前同事编写XML时,竟然分不清包名的大小写,导致Untiy报错。在翻遍文件夹后发现其中一个XML散发出一股诡异的光芒,于是就把它揪出来了,真不知道之前使用gradle方式是怎么编译通过的,神奇的Unity。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值