uni-app项目编译运行到鸿蒙模拟器有时黑屏,仅留tabbar和导航栏,重新运行或恢复,此问题是否会在真机出现,若会则影响严重

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

uni-app项目编译运行到鸿蒙模拟器有时黑屏,仅留tabbar和导航栏,重新运行或恢复,此问题是否会在真机出现,若会则影响严重

信息类别 详情
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 win10
HBuilderX 正式
HBuilderX版本 4.28
手机系统 HarmonyOS NEXT
手机系统版本 HarmonyOS NEXT Developer Beta1
手机厂商 华为
手机机型 模拟器
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

新建一个项目,启动鸿蒙模拟器,编译完有时候就会黑屏,不会黑屏就模拟器把app的后台清掉,多试几次,或者重新编译,就会出现。

预期结果:

正常显示

实际结果:

黑屏了

bug描述:

uniapp项目编译运行到鸿蒙模拟器有时候黑屏了,除了tabbar和导航栏还在,有时候重新运行就好了,这种问题是否会在真机出现,如果会,基本就是灾难级别。新建的项目都会,图一是自己的项目,图二是新建的项目,而且貌似随着代码量的真多,出现的次数也会增多。

Image 1 Image 2


更多关于uni-app项目编译运行到鸿蒙模拟器有时黑屏,仅留tabbar和导航栏,重新运行或恢复,此问题是否会在真机出现,若会则影响严重的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

目前没有其他人反馈类似问题,模拟器bug比较多,你ide什么版本,如果不是最新升级试试。

更多关于uni-app项目编译运行到鸿蒙模拟器有时黑屏,仅留tabbar和导航栏,重新运行或恢复,此问题是否会在真机出现,若会则影响严重的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


目前是最新的ide,因为没有真机可以测试是不是模拟器的问题,另一个同事在模拟器上也是出现同样的黑屏事件 DevEco Studio NEXT Beta1 Build #DS-233.14475.28.36.503800 Build Version: 5.0.3.800, built on September 4, 2024 Runtime version: 17.0.10+1-b1087.17 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 10.0 GC: G1 Young Generation, G1 Old Generation Memory: 4074M Cores: 12 Registry: idea.plugins.compatible.build=IC-233.14475.28

我也出现了这样的问题官方能搞一下不

已经习以为常了,deveco工具重新编译两次就好了

荣耀真机测试有时也会除tabbar外的黑屏闪烁

针对您提到的uni-app项目在鸿蒙模拟器上编译运行时偶尔出现黑屏,仅留下tabbar和导航栏的问题,这里提供一些可能的解决方案和排查思路,并附上相关的代码案例。首先,要明确的是,此类问题在模拟器上出现,不一定会在真机上重现,但为了确保应用的稳定性和用户体验,还是需要进行详细的排查和修复。

1. 检查App.vue配置

确保App.vue中的页面路由配置正确,特别是tabbar的页面配置。错误的页面路径或者组件引用可能导致黑屏。

<template>
  <App />
</template>

<script>
import store from './store'
import router from './router'

export default {
  store,
  router,
  onLaunch() {
    // 可以在这里做一些初始化操作
  },
  onShow() {
    // 每次打开应用时触发
  },
  onHide() {
    // 当应用从前台切换到后台时触发
  },
  pages: [
    {
      path: 'pages/index/index',
      style: {
        navigationBarTitleText: '首页',
        // 其他页面样式配置
      }
    },
    // 其他页面配置
  ],
  tabBar: {
    // tabbar配置
  }
}
</script>

2. 排查页面生命周期函数

检查各个页面的onLoadonShow等生命周期函数,确保没有导致页面无法正常显示的代码。

<script>
export default {
  onLoad() {
    // 初始化数据
  },
  onShow() {
    // 页面显示时执行的操作
  }
}
</script>

3. 使用条件渲染控制页面内容

如果页面内容较为复杂,可以使用v-ifv-show等指令进行条件渲染,确保在数据未加载完成时不会渲染页面内容,从而避免黑屏。

<template>
  <view v-if="dataLoaded">
    <!-- 页面内容 -->
  </view>
  <view v-else>
    <!-- 加载中提示 -->
    <text>加载中...</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      dataLoaded: false
    }
  },
  onLoad() {
    // 模拟数据加载
    setTimeout(() => {
      this.dataLoaded = true;
    }, 2000);
  }
}
</script>

总结

虽然模拟器上的问题不一定会在真机上重现,但为了确保应用的稳定性和用户体验,建议对上述问题进行详细的排查和修复。如果问题依旧存在,可以考虑在真机上进行测试,或者向uni-app官方或鸿蒙开发者社区寻求帮助。

回到顶部