一、环境配置与工程初始化
-
SDK与依赖管理
- SDK缺失:创建项目时报错
No valid SDK found,因首次安装未自动下载HarmonyOS SDK。
解决:进入Tools → SDK Manager,勾选HarmonyOS SDK、JS/TS SDK及Previewer,点击Apply下载。 - Node.js版本冲突:编译报错
Unsupported Node version。
解决:锁定Node≥18.16.0,在项目根目录创建.npmrc并添加engine-strict=true。
- SDK缺失:创建项目时报错
-
工程配置错误
- 权限声明缺失:调用相机/网络时闪退,日志提示
Permission denied。
解决:在module.json5中精确声明权限,并补充动态申请逻辑:
动态申请需调用"requestPermissions": [ { "name": "ohos.permission.INTERNET", "usedScene": "网络请求" }, { "name": "ohos.permission.DISTRIBUTED_DATASYNC", "usedScene": "跨设备同步" } ]abilityAccessCtrl.createAtManager()。 - HAP包体积超标:上报
INSTALL_FAILED_SIZE_TOO_LARGE错误。
解决:启用Tree-Shaking删除未引用代码;图片转WebP格式;资源分级加载。
- 权限声明缺失:调用相机/网络时闪退,日志提示
二、UI布局与组件适配
-
响应式布局失效
- 折叠屏/平板显示异常:新闻列表错位或操作区域过小。
解决:- 使用
vp/fp弹性单位替代固定像素。 - 声明栅格系统:
GridContainer组件实现手机单列、平板分栏布局。
- 使用
- 折叠屏/平板显示异常:新闻列表错位或操作区域过小。
-
列表渲染性能低下
- 千级新闻数据卡顿:直接使用
<FlatList>导致FPS<30。
优化方案:
帧率提升40%,内存占用降25%。import { HarmonyList } from '@react-native-oh/react-native-harmony'; <HarmonyList data={newsData} lazyRenderingThreshold={1.5} // 仅渲染可视区域+1.5屏缓冲 initialNumToRender={10} // 首屏项数 />
- 千级新闻数据卡顿:直接使用
三、功能开发与集成
-
分布式数据同步故障
- 跨设备阅读进度丢失:同步延迟>500ms或冲突处理缺失。
根治方案:
监听设备状态import { distributedKVStore } from '@ohos.data.distributedKVStore'; const options = { syncMode: 'HIGH', conflictResolution: 'LAST_WIN' }; // 高优先级同步+最近修改为准deviceManager.on('deviceStateChange'),断网时启用本地缓存。
- 跨设备阅读进度丢失:同步延迟>500ms或冲突处理缺失。
-
网络请求异常
- 证书错误6003:签名指纹与AGC平台不一致。
解决:- 检查
module.json5的INTERNET权限; - 确保应用签名证书SHA256与AGC配置一致;
- 清除HMS Core缓存。
- 检查
- 请求取消/超限:报错
The request has been canceled or the number of requests exceeds 100。
优化:限制并发请求数;失败后指数退避重试。
- 证书错误6003:签名指纹与AGC平台不一致。
四、性能与安全
-
内存泄漏三大重灾区
泄漏类型 检测工具 修复方案 全局Context持有 HiChecker 替换为WeakReference弱引用 未释放传感器监听 MemoryProfiler onPageHide()中调用Sensor.release()异步任务未取消 DevEco Trace 组件销毁前调用 AbortController -
主线程阻塞
- 新闻摘要分析卡顿:复杂计算阻塞UI线程。
解决:将计算任务封装为原生模块,通过NAPI调用NPU加速:
响应速度提升3倍。// ArkTS层调用 const { SummaryParser } = NativeModules; const summary = await SummaryParser.parseSummary(content);
- 新闻摘要分析卡顿:复杂计算阻塞UI线程。
五、测试与发布
-
真机调试黑屏
- 根因:HDC端口冲突或文件系统挂载异常。
解决:命令行执行hdc shell mount -o rw,remount /重挂载文件系统。
- 根因:HDC端口冲突或文件系统挂载异常。
-
热更新失效
- ArkCompiler阻断JS更新:需关闭编译优化:
// entry/build-profile.json5 "arkOptions": { "optimizationLevel": "NONE" } ``` [2](@ref)
- ArkCompiler阻断JS更新:需关闭编译优化:
-
签名错误
- 审核驳回:证书有效期不足25年。
避坑:生成签名时勾选“有效期30年”。
- 审核驳回:证书有效期不足25年。
高频错误速查表
| 领域 | 高频错误现象 | 终极解决方案 |
|---|---|---|
| 环境配置 | Node版本冲突/SDK缺失 | 锁定Node≥18.16.0 + SDK Manager勾选必需组件 |
| 分布式同步 | 跨设备进度不同步 | distributedKVStore + syncMode: 'HIGH' + 冲突策略LAST_WIN |
| 性能优化 | 长列表卡顿/内存泄漏 | HarmonyList惰性加载 + WeakReference管理全局引用 |
| 安全合规 | 权限申请被拒/敏感词拦截 | 动态权限声明usedScene + 华为内容审核API预检 |
| 发布运维 | 热更新失效/签名过期 | 关闭Ark优化 + 30年有效期证书 |


被折叠的 条评论
为什么被折叠?



