Android打开离线小程序在uni-app中有几率会白屏
Android打开离线小程序在uni-app中有几率会白屏
操作步骤:
- 首次下载App->打开首页金刚位【数据库】(下载离线wgt)->下载完成打开小程序偶尔白屏
预期结果:
- 能够正常打开小程序
实际结果:
- 小程序有几率白屏
bug描述:
Android首次打开离线小程序wgt有几率会白屏,再次点击就正常了。
出现白屏的时候会打印下面的Log:
2025-07-24 11:42:04.335 25237-25237 weex com.jin10 E idle from create instance cache size is 0
2025-07-24 11:42:04.339 25237-25365 weex com.jin10 E end getBundleType type:Vue time:0
2025-07-24 11:42:04.344 25237-25365 timeline com.jin10 E createInstance :1753328524344
2025-07-24 11:42:04.376 25237-25365 WeexCore com.jin10 E IPCFutexPageQueue.cpp:116,IPCException IPCFutexPageQueue:: start futex wait
2025-07-24 11:42:04.386 25237-25365 WeexCore com.jin10 E IPCFutexPageQueue.cpp:116,IPCException IPCFutexPageQueue:: start futex wait
2025-07-24 11:42:04.636 25870-25888 JSE pid-25870 E /data/app/com.jin10-8zZEafOOxJH6A3jUN7pA4Q==/lib/arm64/libweexjss.so + 00352790(unknown symbol)
2025-07-24 11:42:04.636 25870-25888 JSE pid-25870 E /data/app/com.jin10-8zZEafOOxJH6A3jUN7pA4Q==/lib/arm64/libweexjss.so + 003525f0(unknown symbol)
2025-07-24 11:42:04.636 25870-25888 JSE pid-25870 E /data/app/com.jin10-8zZEafOOxJH6A3jUN7pA4Q==/lib/arm64/libweexjss.so + 00327244(unknown symbol)
2025-07-24 11:42:04.636 25870-25888 JSE pid-25870 E /data/app/com.jin10-8zZEafOOxJH6A3jUN7pA4Q==/lib/arm64/libweexjss.so + 003d1d3c(unknown symbol)
2025-07-24 11:42:04.636 25870-25888 JSE pid-25870 E /data/app/com.jin10-8zZEafOOxJH6A3jUN7pA4Q==/lib/arm64/libweexjss.so + 003d1378(unknown symbol)
2025-07-24 11:42:04.636 25870-25888 JSE pid-25870 E /data/app/com.jin10-8zZEafOOxJH6A3jUN7pA4Q==/lib/arm64/libweexjss.so + 003d0b54(unknown symbol)
2025-07-24 11:42:04.636 25870-25888 JSE pid-25870 E /data/app/com.jin10-8zZEafOOxJH6A3jUN7pA4Q==/lib/arm64/libweexjss.so + 004ebc6c(unknown symbol)
2025-07-24 11:42:04.637 25237-25857 WeexCore com.jin10 E IPCException server original owner has die
2025-07-24 11:42:04.637 25237-25857 WeexCore com.jin10 E IPCFutexPageQueue.cpp:66,do munmap
2025-07-24 11:42:14.338 25237-25237 Html5Plus-SplashClosed com.jin10 E 1753328534337
2025-07-24 11:42:14.338 25237-25237 Main_Path com.jin10 E closeSplashScreen0 appid=__UNI__26EA1D0;true;closeSplashDid=false
更多关于Android打开离线小程序在uni-app中有几率会白屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于Android打开离线小程序在uni-app中有几率会白屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的离线包加载时序问题。从日志分析,白屏的主要原因是首次加载wgt资源时,Weex引擎初始化与页面渲染之间的竞争条件导致的。
关键日志点:
idle from create instance cache size is 0- 实例缓存为空,需要重新创建IPCException IPCFutexPageQueue:: start futex wait- 进程间通信等待超时IPCException server original owner has die- 服务端进程异常终止
解决方案:
- 添加加载状态检测 在打开离线小程序前,检查wgt包是否完全加载就绪:
plus.runtime.isWgtReady(appid, (ready) => {
if (ready) {
// 打开小程序逻辑
} else {
// 延迟重试或显示加载中
}
});
- 实现重试机制 捕获白屏异常后自动重试:
let retryCount = 0;
const openWgt = () => {
plus.runtime.openWgt(appid, (res) => {
if (res.code !== 0 && retryCount < 3) {
retryCount++;
setTimeout(openWgt, 500);
}
});
};
- 预加载优化 在下载完成后先预初始化wgt环境:
// 下载完成后立即预加载
plus.runtime.preloadWgt(appid, () => {
console.log('wgt预加载完成');
});
- 资源验证 确保wgt包完整性,在打开前验证主要资源文件:
plus.io.resolveLocalFileSystemURL(wgtPath, () => {
// 资源可用,继续打开
}, () => {
// 资源损坏,重新下载
});

