uni-app 离线打包Demo工程启动速度慢且报错 在后台线程更新UI

uni-app 离线打包Demo工程启动速度慢且报错 在后台线程更新UI

操作步骤

  • 配置官方的离线打包SDK工程,然后连上真机运行起来

预期结果

  • 正常运行,启动速度正常

实际结果

  • 启动速度慢,控制台报错:Main Thread Checker: UI API called on a background thread

bug描述

离线打包SDK 4.15的工程,配置完毕后,成功运行起来了,但是启动的很慢,在Xcode 的控制台中,打出在子线程更新UI的操作。错误log如下:

Main Thread Checker: UI API called on a background thread: -[UIView alpha]
PID: 747, TID: 87780, Thread name: com.taobao.weex.bridge, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4   UniPluginDemo                       0x0000000105255858 -[PDRCoreAppFrame bulidJSOption] + 444
5   UniPluginDemo                       0x000000010563f870 -[PGUI JSWindow_Sync_getOption:] + 152
6   UniPluginDemo                       0x000000010563c428 -[PGUI syncExecMethod:] + 320
7   UniPluginDemo                       0x000000010526d518 -[PDRCoreFeature Execute:] + 288
8   UniPluginDemo                       0x00000001052ef598 -[PDRCoreApp handleCmds:] + 104
9   UniPluginDemo                       0x00000001052597cc -[PDRCoreAppFrame webViewEnginde:didReceiveSyncScriptMessage:] + 108
10  UniPluginDemo                       0x000000010480d45c -[H5WeexWebview handleMessage:withObject:] + 148
11  UniPluginDemo                       0x000000010480c728 28-[H5WeexWebview refreshWeex]_block_invoke + 60
12  UniPluginDemo                       0x0000000104839d6c -[WXSDKInstance(DCPlusBridge) execSync:] + 96
13  UniPluginDemo                       0x000000010480f8fc -[PlusWeexModule execSync:] + 60
14  CoreFoundation                      0x00000001b7008c20 7519E999-1053-3367-B9D5-8844F6D3BDC6 + 1252384
15  CoreFoundation                      0x00000001b6ed8d30 7519E999-1053-3367-B9D5-8844F6D3BDC6 + 7472
16  UniPluginDemo                       0x0000000104821038 -[WXModuleMethod invoke] + 768
17  UniPluginDemo                       0x0000000104798808 42-[WXBridgeContext registerGlobalFunctions]_block_invoke_5.131 + 864
18  UniPluginDemo                       0x0000000104862498 43-[WXJSCoreBridge registerCallNativeModule:]_block_invoke + 468
19  CoreFoundation                      0x00000001b7008c20 7519E999-1053-3367-B9D5-8844F6D3BDC6 + 1252384
20  CoreFoundation                      0x00000001b6ed8d30 7519E999-1053-3367-B9D5-8844F6D3BDC6 + 7472
21  JavaScriptCore                      0x00000001c5f74498 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2487448
22  JavaScriptCore                      0x00000001c5f73ef8 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2486008
23  JavaScriptCore                      0x00000001c5f73924 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2484516
24  JavaScriptCore                      0x00000001c5f55d10 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2362640
25  JavaScriptCore                      0x00000001c5f53080 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351232
26  JavaScriptCore                      0x00000001c5f53128 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351400
27  JavaScriptCore                      0x00000001c5f53128 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351400
28  JavaScriptCore                      0x00000001c5f53128 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351400
29  JavaScriptCore                      0x00000001c5f53128 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351400
30  JavaScriptCore                      0x00000001c5f53080 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351232
31  JavaScriptCore                      0x00000001c5f53128 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351400
32  JavaScriptCore                      0x00000001c5f347e8 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2226152
33  JavaScriptCore                      0x00000001c6492ea4 C87FA51E-B103-3902-A963-FAAEDB228C86 + 7855780
34  JavaScriptCore                      0x00000001c6707a54 C87FA51E-B103-3902-A963-FAAEDB228C86 + 10431060
35  JavaScriptCore                      0x00000001c5f559cc C87FA51E-B103-3902-A963-FAAEDB228C86 + 2361804
36  JavaScriptCore                      0x00000001c5f5456c C87FA51E-B103-3902-A963-FAAEDB228C86 + 2356588
37  JavaScriptCore                      0x00000001c5f53080 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351232
38  JavaScriptCore                      0x00000001c5f53080 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351232
39  JavaScriptCore                      0x00000001c5f53128 C87FA51E-B103-3902-A963-FAAEDB228C86 + 2351400
40  JavaScriptCore                      0x00000001c5f53128 C87FA51E-B103-3902-A963-FAAEDB228C86 + 23

更多关于uni-app 离线打包Demo工程启动速度慢且报错 在后台线程更新UI的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

你好!我也遇到同样的问题,请问你解决了吗?

更多关于uni-app 离线打包Demo工程启动速度慢且报错 在后台线程更新UI的实战教程也可以访问 https://www.itying.com/category-93-b0.html


没有,搜了下这个问题几年前就有人提过了,至今官方也没解决,Pandora框架又不是开源的,想自己改都没法改

在 uni-app 的离线打包过程中,如果遇到启动速度慢且报错的问题,尤其是在后台线程更新 UI 时,可能是由于以下几个原因导致的。以下是一些可能的解决方案:

1. 检查主线程与 UI 更新的关系

在 Android 开发中,UI 更新必须在主线程中进行。如果在后台线程中尝试更新 UI,会导致 CalledFromWrongThreadException 异常。确保所有的 UI 更新操作都在主线程中进行。

解决方案: 使用 runOnUiThread 方法将 UI 更新操作切换到主线程。

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // 更新 UI 的代码
    }
});
回到顶部