打包的鸿蒙APP启动白屏在uni-app

打包的鸿蒙APP启动白屏在uni-app

操作步骤:

  • 正常的流程打包鸿蒙APP

预期结果:

  • 能够正常启动

实际结果:

  • 启动APP白屏

bug描述:

  • 如果只保留一个页面启动没问题,但是多个页面的话打包鸿蒙APP启动就会白屏,项目在本地是能正常运行的,然后之前也打包过安卓和iOS都是没有问题,现在就是打包鸿蒙APP启动白屏

| 信息类别       | 信息内容             |
|----------------|----------------------|
| 产品分类       | uniapp/App           |
| PC开发环境     | Windows              |
| PC操作系统版本 | win10                |
| HBuilderX类型  | 正式                 |
| HBuilderX版本  | 4.84                 |
| 手机系统       | HarmonyOS NEXT       |
| 手机系统版本   | HarmonyOS 6.0.0      |
| 手机厂商       | 华为                 |
| 手机机型       | Mate 70              |
| 页面类型       | vue                  |
| vue版本        | vue3                 |
| 打包方式       | 云端                 |
| 项目创建方式   | HBuilderX            |

更多关于打包的鸿蒙APP启动白屏在uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html

20 回复

我也是,4.7.6传统打真机包运行正常,4.7.6标准机运行正常,4.7.6传统打正式包运行正常。4.8.4传统打真机包运行正常,4.8.4标准机运行正常,4.8.4传统打正式包运行白屏,不执行任何逻辑,一进去就是一直白屏。4.7.6和4.8.4代码一摸一样,没有变动,已反复测试过。

更多关于打包的鸿蒙APP启动白屏在uni-app的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


运行白屏,还是打包后发测试版后发现白屏?

我的是运行自定义包白屏并报错 reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught SyntaxError: missing ) after argument list,打包正式包也白屏

回复 六博工作室: 这是运行到鸿蒙?看报错信息好像是 js 语法错误。新建一个空白项目能复现吗?

回复 DCloud_UNI_LXH: 我的项目是安卓app,然后重新打包就这样了

打包成APP白屏,运行到鸿蒙真机也是白屏,项目本地浏览器运行是正常的

我的项目是uniapp打包成安卓和iOS都没问题,现在就是鸿蒙这出现运行白屏

回复 i***@163.com: 看你的描述是,保留一个页面没问题,多个页面就有问题。是否是其中一个页面有问题?

回复 DCloud_UNI_LXH: 麻烦调试一下,最好是能在一个空白的项目上复现出来

回复 DCloud_UNI_LXH: 就是哪怕是多个功能都会白屏

运行是控制台没有报错信息

回复 DCloud_UNI_LXH: 我上传了附件,要不你看看

回复 i***@163.com: 新建一个空白项目也会白屏?

回复 i***@163.com: 这个项目没有适配鸿蒙吧,应该是有什么写法鸿蒙不支持,比如用了 plus 或者没有的 api 等

回复 DCloud_UNI_LXH: 空白不会,我这项目是uniapp改的去年打包安卓和iOS都没有问题,就现在打包鸿蒙APP就出现这个白屏

回复 i***@163.com: 因为鸿蒙上有一些是和安卓 ios 不一样的,比如不支持 plus

回复 DCloud_UNI_LXH: 那我还得改代码?

回复 i***@163.com: 是的,得看看是哪里导致的白屏

回复 DCloud_UNI_LXH: manifest.json这个文件,但是不知道问题在哪

这是一个典型的资源加载问题。在鸿蒙NEXT平台上,多页面应用启动时可能出现白屏,主要原因是页面资源预加载机制与路由初始化不同步。

解决方案:

  1. 检查路由配置pages.json 中确认所有页面路径正确,特别是首页路由配置:

    {
      "pages": [
        {
          "path": "pages/index/index",
          "style": { ... }
        }
        // 其他页面...
      ]
    }
    
  2. 优化页面加载顺序 在应用启动时减少同步初始化操作,将非关键逻辑移至 onReady 生命周期:

    export default {
      onReady() {
        // 延迟初始化代码
      }
    }
回到顶部