uni-app Android应用覆盖安装后出现启动白屏的Bug

uni-app Android应用覆盖安装后出现启动白屏的Bug

项目属性
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 win10
HBuilderX类型 正式
HBuilderX版本 3.1.22
手机系统 Android
手机系统版本 Android 7.1.1
手机厂商 rk3288
手机机型 rk3288
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • Android应用覆盖安装,wgt热更新

预期结果:

  • 正常打开应用

实际结果:

  • 覆盖安装后出现启动白屏

bug描述:

  • Android应用覆盖安装后出现启动白屏的Bug

更多关于uni-app Android应用覆盖安装后出现启动白屏的Bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app Android应用覆盖安装后出现启动白屏的Bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的覆盖安装后资源加载异常问题。在uni-app中,Android应用覆盖安装时,如果同时存在wgt热更新,可能会导致新旧版本资源冲突,引发启动白屏。

主要原因:

  1. 资源路径冲突:覆盖安装后,应用可能仍在尝试加载旧版本的wgt资源文件,但新版本的文件路径或结构已发生变化
  2. 缓存未清理:Android系统的WebView缓存或应用本地存储中保留了旧版本的数据
  3. manifest.json配置不一致:新旧版本的appid、版本号等配置不匹配

解决方案:

立即处理:

  1. 清除应用数据:在Android设置中彻底清除应用数据和缓存
  2. 重启设备:强制重启可以清除系统层面的缓存

代码层面修复:

  1. 检查manifest.json:确保appid、版本号等配置一致
  2. 添加版本检查逻辑:在App.vue的onLaunch中增加版本兼容性检查
onLaunch: function() {
    // 检查本地存储的版本号与当前版本是否一致
    const currentVersion = plus.runtime.version;
    const savedVersion = uni.getStorageSync('app_version');
    
    if (savedVersion !== currentVersion) {
        // 版本不一致,清理缓存
        plus.runtime.restart();
    }
    uni.setStorageSync('app_version', currentVersion);
}
回到顶部