一、环境配置与初始化问题

1. 问题:SDK 下载失败或速度极慢

​新增代码示例:手动配置 Maven 镜像​
若默认镜像配置无效,可直接在项目的 settings.gradle 中强制指定镜像源:

dependencyResolutionManagement {
    repositories {
        maven { url 'https://maven.huaweicloud.com/repository/maven-public/' } // 华为镜像
        maven { url 'https://maven.aliyun.com/repository/public' } // 阿里云镜像
        exclusiveContent {
            forRepository {
                maven { url 'https://repo.maven.apache.org/maven2' }
            }
            filter { groupId, artifactId -> !groupId.startsWith('com.huawei') } // 排除华为仓库
            atTop true
        }
    }
}

二、编译与构建问题

3. 问题:构建失败(HAP 包生成错误)

​新增场景:依赖冲突解决​
当出现 Duplicate class 错误时,可通过 exclude 排除重复依赖:

dependencies {
    implementation ('com.huawei.agconnect:agcp:3.1.0') {
        exclude group: 'org.json', module: 'json' // 排除冲突的 JSON 库
    }
    implementation 'org.json:json:20231013' // 显式指定正确版本
}

4. 问题:Previewer 预览异常

​新增调试代码:动态检测资源路径​
在预览组件中插入临时代码,验证资源加载路径:

// .ets 文件示例
@Entry
@Component
struct PreviewTest {
  build() {
    Column({ space: 10 }) {
      Text(this.getResourcePath('entry/src/main/resources/base/media/test.png'))
        .fontSize(20)
        .onClick(() => {
          console.log('Resource path:', this.getResourcePath('test.png'));
        })
    }
  }

  getResourcePath(resourceName: string): string {
    const context = getContext(this);
    return context.resourceManager.getResourcePath(resourceName);
  }
}

通过控制台输出验证资源路径是否正确。


三、模拟器与真机调试问题

5. 问题:模拟器无法启动

​新增自动化脚本:检查虚拟化环境​
编写 Shell 脚本自动检测虚拟化支持:

#!/bin/bash
if grep -q vmx /proc/cpuinfo; then
  echo "Intel VT-x 已启用"
else
  echo "错误:未检测到虚拟化支持,请进入 BIOS 启用 Intel VT-x/AMD-V"
fi

if command -v kvm-ok &> /dev/null && kvm-ok | grep -q "enabled"; then
  echo "KVM 已就绪"
else
  echo "警告:KVM 未配置,可能导致模拟器性能下降"
fi

6. 问题:真机安装失败

​新增调试命令:检查 ADB 设备状态​
通过命令行快速诊断设备连接问题:

# 查看所有连接的 ADB 设备
adb devices

# 强制结束 ADB 并重启服务
adb kill-server && adb start-server

# 检查 USB 调试授权(需在设备上确认)
adb shell getprop persist.sys.usb.config
# 正常应返回 "adb,devtools,adb_authorize"

四、IDE 性能与体验问题

7. 问题:IDE 运行卡顿

​新增配置:自定义 JVM 参数优化​
修改 devecostudio64.vmoptions 文件,添加以下参数:

-XX:+UseG1GC               # 启用 G1 垃圾回收器
-Xms2048m
-Xmx6144m
-XX:ReservedCodeCacheSize=512m
-Dfile.encoding=UTF-8

8. 问题:快捷键冲突

​新增代码片段:自定义代码模板​
通过 Live Templates 提高编码效率(示例:快速生成 ArkUI 组件):

  1. 打开 Settings -> Editor -> Live Templates
  2. 新建模板组 HarmonyOS
  3. 添加模板:
    // Abbreviation: arkhml
    // Description: 生成基础 ArkUI 组件
    @Entry
    @Component
    struct $NAME$ {
      build() {
        Column({ space: 10 }) {
          Text('$TEXT$')
            .fontSize($FONT_SIZE$)
        }
        .width('100%')
      }
    }
    使用时输入 arkhml 快速生成组件框架。

五、网络与数据管理问题

9. 问题:HTTP 请求跨域失败

​解决方案:配置 DevServer 代理​
vite.config.ts 中设置代理规则:

export default defineConfig({
  server: {
    proxy: {
      '/api': {
        target: 'https://your-backend-domain.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  }
});

10. 问题:分布式数据同步异常

​代码示例:使用 DataShare API​
实现跨设备数据共享:

// 发送端
import dataShare from '@ohos.data.share';

let dataShareInstance = dataShare.createDataShare();
dataShareInstance.writeString('Hello HarmonyOS!');
dataShareInstance.send('com.example.myapp', 'shared_data');

// 接收端
dataShareInstance.on('data', (data) => {
  console.log('Received:', data.readString());
});

六、进阶调试技巧

11. 问题:内存泄漏排查

​使用 DevEco Profiler 分析​
在终端执行内存快照分析:

# 生成堆转储文件
adb shell am dumpheap <pid> /data/local/tmp/heap.hprof

# 拉取文件到本地
adb pull /data/local/tmp/heap.hprof

# 使用 MAT 工具分析(需转换为标准格式)
./hprof-conv heap.hprof mat_heap.hprof

12. 问题:ANR(应用无响应)

​日志分析关键字段​
entry/build.gradle 中启用详细日志:

android {
  buildTypes {
    debug {
      buildConfigField "boolean", "ENABLE_ANR_LOG", "true"
    }
  }
}
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐