今天捣鼓了一整天Uni安卓打包,本来寻思半小时搞定,结果栽进坑里差点爬不出来。你们也知道的,我这人就爱折腾实战项目,昨晚刚给小程序加了新功能,今天准备打个安卓包测试,结果控制台直接飙红字。
一、上来就给我当头一棒
刚点HBuilderX右上角那个打包按钮,选择安卓渠道包,勾完"使用自定义基座"准备美滋滋等安装包生成。结果编译进度条刚跑到70%,突然咔嚓弹个红色报错窗口:"Dex archive merge failed",后头还跟着一串乱码似的路径。我当场就懵了——明明上周打包还好好的!
- 先试了清理项目缓存,重启HBuilderX
- 又把Android Studio的Gradle同步了三次
- 连电脑都重启了,结果报错纹丝不动
看着控制台里密密麻麻的报错日志,突然注意到关键线索:"Multiple dex files define Lcom/google/android/gms/..."。这不明摆着重复引用吗!赶紧打开项目的*文件,果然发现在"App模块配置"里,谷歌地图和推送插件被重复勾选了两次——上周手抖多点了一次保存自己都没发现。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
二、插件打架引发惨案
把多余的那组√取消掉,搓搓手重新点打包。进度条这回倒是跑到95%了,结果又弹出新错误:"Failed to install the following Android SDK packages as some licences have not been accepted"。好家伙,还带连环套的!
翻出三年前买的Windows开发机(对,就是那台键盘膜都发黄的老伙计),打开Android SDK Manager。果然在Tools目录下发现Android SDK Build-Tools 31.0.0旁边挂着灰色感叹号。之前自动更新SDK时没仔细看协议,直接关了安装窗口。
解决方法特简单(但真坑):
- 打开CMD黑窗口
- 切到SDK的tools/bin目录
- 敲进去:sdkmanager --licenses
- 对着刷屏的协议狂按Y键直到手酸
三、压死骆驼的一根稻草
以为终于能成了?打包进度100%完成,手机也弹出安装提示了。结果安装到88%卡住,五分钟后提示"解析安装包错误"。当时气得差点把咖啡泼到键盘上!
翻手机设置才发现,之前测试用的老安装包没卸载干净。因为新包和旧包用了同一个签名证书,版本号却没升级。直接在*里把版本号从1.0.2改成1.0.3,重新生成证书——这回安装条嗖一下跑到底,启动页亮起的瞬间差点老泪纵横。
总结这三个坑:插件别手抖多选,SDK协议要点头,版本号记得往上加。说出来都是芝麻大的问题,但实际遇到能折腾死人。建议大伙儿打包前先喝杯冰水压压惊,别像我似的把键盘摁出坑来。有啥栽坑经历评论区唠唠,一起避雷!