uni-app 云打包APP的wgt升级后,使用plus.runtime.restart()重启应用卡死在启动页无响应(本地自定义基座无此问题)

发布于 1周前 作者 caililin 来自 Uni-App

uni-app 云打包APP的wgt升级后,使用plus.runtime.restart()重启应用卡死在启动页无响应(本地自定义基座无此问题)

开发环境 版本号 项目创建方式
Mac 14.2.1 (23C71) HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Mac

HBuilderX类型:正式

HBuilderX版本号:3.98

手机系统:Android

手机系统版本号:Android 11

手机厂商:小米

手机机型:小米10

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

示例代码:

```javascript
let package_type = this.data.package_type;  
let that = this  
const downloadTask = uni.downloadFile({  
    url: this.data.edition_url,  
    success: res => {  
        if (res.statusCode === 200) {  
            plus.runtime.install(  
                res.tempFilePath,  
                {  
                    force: true //true表示强制安装,不进行版本号的校验;false则需要版本号校验,  
                },  
                function() {  
                    // console.log('success', success);  
                    if (package_type == 1) {  
                        plus.runtime.restart();  
                    }  
                },  
                function(e) {  
                    //提示部分wgt包无法安装的问题  
                    that.data.edition_force = 0;   
                    uni.showToast({  
                        title:e.message,  
                        icon:'none',  
                        duration:2500  
                    })  
                    setTimeout(()=>{  
                        uni.navigateBack()  
                    },2000)  

                }  
            );  
            if (package_type == 0) {  
                // 解决安装app点击取消,更新还在的问题  
                this.data.edition_force = 0;   
                uni.navigateBack();  
            }  
        }  
    }

操作步骤: 云打包的APP的wgt升级,下载安装完后,使用plus.runtime.restart()重启app,卡死在启动页没有响应(本地自定义基座没有此问题)

预期结果: 云打包的APP的wgt升级,下载安装完后,使用plus.runtime.restart()重启app,不卡死在启动页

实际结果: 云打包的APP的wgt升级,下载安装完后,使用plus.runtime.restart()重启app,卡死在启动页没有响应(本地自定义基座没有此问题)

bug描述: 在云打包后,APP的wgt升级后,代码里使用plus.runtime.restart()重启,会卡死在启动页,没有响应。(本地使用自定义基座没有此问题)

  1. 是否跟我引用原生插件有关系
  2. 是否跟我对manifest.json文件的安卓里新增了这个sdk的配置有关系?targetSdkVersion:30


4 回复

不知道是否跟我引用原生插件有关系?


解决了吗兄弟

新版本使用了远山插件需要整包升级,不能使用wgt升级。

在 uni-app 中使用云打包生成的 APP 进行 wgt 升级后,调用 plus.runtime.restart() 重启应用时卡在启动页无响应的问题,可能与以下几个原因有关:

1. 资源文件未正确加载

  • 原因:wgt 升级后,某些资源文件可能没有正确加载或更新,导致应用在启动时卡住。
  • 解决方案
    • 确保 wgt 包中的资源文件完整且正确。
    • 在升级后,检查是否有资源文件缺失或路径错误。

2. 升级逻辑问题

  • 原因:升级逻辑可能存在问题,导致应用在重启时无法正确处理新版本。
  • 解决方案
    • 检查升级逻辑,确保在重启前所有必要的初始化操作已经完成。
    • 可以在 plus.runtime.restart() 前添加一些日志,检查是否有异常。

3. 启动页逻辑问题

  • 原因:启动页的逻辑可能存在问题,导致应用在重启时无法正确跳转到主页面。
  • 解决方案
    • 检查启动页的逻辑,确保在重启后能够正确跳转到主页面。
    • 可以在启动页中添加一些日志,检查是否有异常。

4. 云打包与本地自定义基座差异

  • 原因:云打包生成的 APP 与本地自定义基座可能存在一些差异,导致在云打包的 APP 中出现问题。
  • 解决方案
    • 确保云打包的配置与本地自定义基座的配置一致。
    • 检查云打包的日志,查看是否有异常信息。

5. 缓存问题

  • 原因:应用在升级后可能使用了旧的缓存,导致重启时出现问题。
  • 解决方案
    • 在升级后,清除应用的缓存,确保使用最新的资源文件。

6. 系统权限问题

  • 原因:应用在重启时可能需要某些系统权限,但未正确获取。
  • 解决方案
    • 检查应用的权限配置,确保在重启时能够正确获取所需的权限。

7. 调试与日志

  • 解决方案
    • plus.runtime.restart() 前后添加日志,检查是否有异常。
    • 使用 console.loguni.showToast 输出调试信息,帮助定位问题。

8. 尝试其他重启方式

  • 解决方案
    • 如果 plus.runtime.restart() 无法正常工作,可以尝试使用其他方式重启应用,例如:
      plus.runtime.quit();
      setTimeout(function() {
          plus.runtime.launchApplication({action: 'your_app_scheme'});
      }, 1000);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!