首页 APP开发 正文内容

uni-app 运行 apk 到手机时,弹框提示手机端 SDK 版本不匹配,可能造成应用异常

2023年08月23日 , , , , 443

开发 APP 时,HBuilderX 升级时经常会弹出这个异常提示,本文介绍怎么解决这个问题。

问题描述

使用 uni-app 开发 APP 时,把 APK 项目运行到安卓模拟器时,APP 启动时弹窗提示

本应用使用 HBuilderx 3.2.3 或对应的 cli 版本编译,
而手机端 SDK 版本是 3.1.22。不匹配的版本可能造成应用异常。
[忽略] [查看详情]

每次启动 APP 都会强制弹出这个弹框,尝试了运行到真机调试,仍然会出现,正式打包 apk 也无法解决。虽然不影响使用,但影响用户体验不说,看起来就像个 bug,这到底是什么原因导致的呢?

安卓端 APP 弹出异常
安卓端 APP 弹出异常

原因分析

根据异常提示分析,正在开发的这个安卓 APP 很有可能是使用自定义基座来开发的,HBuilderX 升级之后,就直接编译项目代码来运行了,这时候运行基座还是旧版本的,这个异常提示就是告诉我们,基座版本和 HBuilderX 版本不一致,可能会导致在我们编写代码时,如果使用了新版本支持的功能或者特性,运行在老版本的基座上是不支持的,很可能代码会运行报错,从而影响 APP 的正常运行。

不仅是安卓,iOS 也会出现同样的问题。

iOS 端 APP 弹出异常
iOS 端 APP 弹出异常

解决异常的方法

想要去掉这个弹框也很简单,只需要用目前新版本的 HBuilderX ,找到菜单「运行>运行到手机或模拟器>制作自定义调试基座」,再次打包自定义基座即可。

如果是云打包,新的自定义基座打包完成后,会自动替换本地老版本的基座,注意看一下控制台打印的信息,确认新基座版本和 HBuilderX 是一致的。因为之前官方出过一个 bug,打包出来的版本永远不一致,这可坑惨我们了,好在已经修复了。

确定版本一致没问题后,这时候删掉手机上的 APK,重新运行项目到手机上,即可去掉这个弹框异常了。