uni-app 云打包apk wgt在线更新plus.runtime.install闪退问题
uni-app 云打包apk wgt在线更新plus.runtime.install闪退问题
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 专业版 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:win10 专业版 22H2(操作系统内部版本 19045.2965)
HBuilderX类型:正式
HBuilderX版本号:4.45
手机系统:Android
手机系统版本号:Android 12
手机厂商:小米
手机机型:Redmi K30i 5G
页面类型:vue
vue版本:vue2
打包方式:云端
项目创建方式:HBuilderX
操作步骤:
// 下载wgt文件
downWgt() {
const wgtUrl = this.data.edition_url;
plus.nativeUI.showWaiting('下载wgt文件...');
plus.downloader
.createDownload(wgtUrl, { filename: '_doc/update/' }, (d, status) => {
try {
if (status == 200) {
console.log('下载wgt成功:d====' + JSON.stringify(d));
console.log('下载wgt成功:' + d.filename);
this.suuData = JSON.stringify(d)
plus.nativeUI.closeWaiting();
return
this.installWgt(d.filename); // 安装wgt包
} else {
console.log('下载wgt失败!');
plus.nativeUI.alert('下载wgt失败!');
}
} catch (error) {
console.error('执行安装wgt包时出错:', error);
plus.nativeUI.alert('执行安装wgt包时出错: ' + error.message);
} finally {
plus.nativeUI.closeWaiting();
}
})
.start();
},
// 更新应用资源
installWgt(path) {
console.log('installWgt', path);
plus.nativeUI.showWaiting('安装wgt文件...');
plus.runtime.install(
path,
{
force: true //true表示强制安装,不进行版本号的校验;false则需要版本号校验,
},
function () {
plus.nativeUI.closeWaiting();
console.log('安装wgt文件成功!');
plus.nativeUI.alert('应用资源更新完成!', function () {
plus.runtime.restart();
});
},
function (e) {
plus.nativeUI.closeWaiting();
console.log('安装wgt文件失败[' + e.code + ']:' + e.message);
plus.nativeUI.alert('安装wgt文件失败[' + e.code + ']:' + e.message);
}
);
},
预期结果:
云打包的apk也能正常安装更新
实际结果:
模拟器调试和真机调试正常安装;
云打包的apk在执行plus.runtime.install的时候闪退了,没有安装成功;
bug描述:
wgt更新
模拟器、真机调试都能正常更新;
云打包(国际账号)的apk能正常下载,运行到plus.runtime.install时会闪退;
换了好几台机型都是一样;
相关权限设置、安装代码如下:

更多关于uni-app 云打包apk wgt在线更新plus.runtime.install闪退问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
自定义基座是否可以呢 切换下安心打包或者传统打包的方式 看着不像是代码的问题
更多关于uni-app 云打包apk wgt在线更新plus.runtime.install闪退问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的云打包后热更新权限配置问题。云打包APK在安装wgt时闪退,通常是因为缺少必要的安装权限。
检查以下配置:
- Android权限配置:在manifest.json中确保添加以下权限:
"permissions": {
"Install": {
"request": "always"
}
}
- 文件路径问题:云打包后文件系统路径可能不同,建议使用
_doc/update/目录时确认文件确实下载成功。可以在下载完成后添加文件存在性检查:
plus.io.resolveLocalFileSystemURL(d.filename, (entry) => {
this.installWgt(entry.toLocalURL());
}, (error) => {
console.log('文件不存在:' + d.filename);
});
- 安装参数调整:尝试不使用force参数或设置为false,避免版本校验冲突:
plus.runtime.install(path, {}, success, error);

