uni-app 项目新增页面后,新的apk覆盖安装旧的apk,新页面无法打开,杀掉app进程后重新进入可正常打开

uni-app 项目新增页面后,新的apk覆盖安装旧的apk,新页面无法打开,杀掉app进程后重新进入可正常打开

开发环境 版本号 项目创建方式
PC Windows HBuilderX
手机 Android
Android 11
Xiaomi
Xiaomi 11

产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.1.22
手机系统:Android
手机系统版本号:Android 11
手机厂商:小米
手机机型:小米11
页面类型:nvue
打包方式:云端

示例代码:

项目新增页面后,新的apk覆盖安装旧的apk后,新页面无法打开。 杀掉app进程后再次进入app后,新页面可正常打开。


### 操作步骤:

项目新增页面后,新的apk覆盖安装旧的apk后,新页面无法打开。
杀掉app进程后再次进入app后,新页面可正常打开。

预期结果:

项目新增页面后,新的apk覆盖安装旧的apk后,新页面无法打开。 杀掉app进程后再次进入app后,新页面可正常打开。


### 实际结果:

项目新增页面后,新的apk覆盖安装旧的apk后,新页面无法打开。
杀掉app进程后再次进入app后,新页面可正常打开。

bug描述:

项目新增页面后,新的apk覆盖安装旧的apk后,新页面无法打开。 杀掉app进程后再次进入app后,新页面可正常打开。


更多关于uni-app 项目新增页面后,新的apk覆盖安装旧的apk,新页面无法打开,杀掉app进程后重新进入可正常打开的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 项目新增页面后,新的apk覆盖安装旧的apk,新页面无法打开,杀掉app进程后重新进入可正常打开的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的页面缓存问题。在uni-app中,当新增页面后覆盖安装APK,旧版本的页面路由信息可能仍被缓存,导致新页面无法立即识别。

主要原因:

  1. uni-app的路由表在应用启动时生成并缓存
  2. 覆盖安装时,应用可能未完全重启,旧的页面路由缓存未更新
  3. 杀掉进程后强制重新初始化,路由表重新生成

解决方案:

  1. 清理缓存:在应用启动时调用 uni.clearStorage() 清理本地存储
  2. 版本控制:在 App.vueonLaunch 中检查版本号,版本更新时清理缓存
  3. 路由检查:确保新增页面的路径在 pages.json 中正确配置
  4. 热重启:覆盖安装后建议用户重启应用

代码示例(App.vue):

onLaunch: function() {
  const currentVersion = '1.0.1' // 当前版本
  const storedVersion = uni.getStorageSync('app_version')
  
  if (storedVersion !== currentVersion) {
    uni.clearStorage()
    uni.setStorageSync('app_version', currentVersion)
  }
}
回到顶部