HarmonyOS 鸿蒙Next 4.2 真机无法被 hdc 识别,是否支持 DevEco/HDC 调试原生 HAP 输入法?

HarmonyOS 鸿蒙Next 4.2 真机无法被 hdc 识别,是否支持 DevEco/HDC 调试原生 HAP 输入法? 问题描述:
我正在开发一个 HarmonyOS 原生 HAP 输入法项目,使用 DevEco Studio 6.1.0.850,SDK API 23,工程类型为 Stage 模型,包含 InputMethodExtensionAbility。

当前电脑环境:

  • macOS
  • DevEco Studio: 6.1.0.850
  • HarmonyOS SDK: 6.1.0.105 / API 23
  • hdc 路径:/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/toolchains/hdc - hdc version: 3.2.0c
  • DevEco 模拟器可被 hdc 识别,target 为 127.0.0.1:5555

当前项目验证结果:

  • HAP 可以通过 hvigor assembleHap 构建
  • HAP 可以安装到 HarmonyOS 6.1 模拟器
  • 模拟器中 ime -l 可以看到 com.smartvoiceime.native
  • 模拟器中可以 enable/switch 到该输入法
  • 但模拟器创建输入法面板失败,日志为: CreatePanel,create window failed: 1001

真机问题:

  • 真机型号:HUAWEI GRL-AL10
  • 系统版本:HarmonyOS 4.2
  • macOS USB 层可以识别该设备
  • adb devices -l 可以看到设备序列号 3DJ0224906004358,但状态为 unauthorized
  • hdc list targets 看不到该真机
  • hdc list targets 只能看到模拟器,或在未启动模拟器时返回 Empty

想确认的问题:

  1. HarmonyOS 4.2 消费者版手机是否支持 DevEco Studio / hdc 调试原生 HarmonyOS HAP?
  2. HUAWEI GRL-AL10 / HarmonyOS 4.2 是否应该能出现在 hdc list targets 中?
  3. 如果支持,需要在手机开发者选项中开启哪个具体开关?是 USB 调试、HDC 调试、无线调试,还是其他名称?
  4. 如果该设备只暴露 ADB,不暴露 HDC,是否意味着它不能用于 HarmonyOS 原生 HAP / InputMethodExtensionAbility 真机调试?
  5. 如果要验证 HarmonyOS 原生系统输入法 InputMethodExtensionAbility,是否必须使用 HarmonyOS NEXT / HarmonyOS 6 设备或 DevEco 远程真机?
  6. 模拟器中第三方输入法 createPanel 失败是否是模拟器限制?真实 HarmonyOS 设备上是否可正常验证?

更多关于HarmonyOS 鸿蒙Next 4.2 真机无法被 hdc 识别,是否支持 DevEco/HDC 调试原生 HAP 输入法?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

13 回复

你这个场景本质上已经涉及:

HarmonyOS NEXT
vs
HarmonyOS 4.x(兼容Android阶段)

两套体系的差异了。

你现在的问题其实非常典型。


先说结论(重点)

HarmonyOS 4.2 消费者版手机
基本不能用于
HarmonyOS NEXT 原生 HAP 输入法真机调试

尤其:

InputMethodExtensionAbility

这种:

纯鸿蒙原生能力

通常需要:

HarmonyOS NEXT / HarmonyOS 5+ / HarmonyOS 6

设备。


1、HarmonyOS 4.2 是否支持 hdc 调试原生HAP?

大概率:

不完整支持

因为:

HarmonyOS 4.x 消费者版:

本质还是 AOSP + Harmony 框架

不是:

OpenHarmony NEXT 完整形态

所以:

  • adb 还能看到
  • hdc 很可能看不到
  • Stage能力不完整
  • InputMethodExtensionAbility 支持有限

这是正常现象。


2、为什么 adb 能看到,hdc 看不到

这其实已经说明:

设备暴露的是 Android 调试链路

不是:

OpenHarmony hdc链路

也就是说:

这个设备不是完整 NEXT 开发设备

3、HarmonyOS 4.2 是否应该出现在 hdc list targets

正常情况下:

不会

或者:

即使出现也不稳定

因为:

消费者版 HarmonyOS 4.x:

很多设备根本没开放 hdc daemon

4、要开哪些开关

HarmonyOS NEXT 真机一般需要:

开发者选项:

USB调试
HDC调试
允许调试

部分机型还有:

仅充电模式下允许HDC

但:

你这个 4.2 设备:

可能压根没有 HDC 调试开关

因为系统层没开放。


5、只暴露 ADB 是否意味着不能调试原生HAP

基本可以这么理解:

只能调兼容层
不能完整调 NEXT 原生能力

尤其:

InputMethodExtensionAbility

属于:

HarmonyOS NEXT 原生系统能力

不是 Android IME。


6、InputMethodExtensionAbility 是否必须用 NEXT 设备

目前基本是:

是的

推荐:

  • HarmonyOS NEXT 真机
  • HarmonyOS 5+
  • HarmonyOS 6
  • DevEco 云真机

7、模拟器 createPanel failed:1001 是什么

这个其实也很典型。

输入法窗口能力

很多:

模拟器不完整支持

尤其:

系统级窗口
输入法浮层
软键盘窗口

经常:

create window failed

8、真实设备一般正常吗

HarmonyOS NEXT 真机:

通常:

是可以正常创建输入法面板的

很多开发者:

IME 都只能真机调

模拟器只能:

  • 验证安装
  • 验证enable
  • 验证switch

但:

面板创建经常失败

属于已知现象。


9、你现在最推荐方案

建议:

DevEco Studio + HarmonyOS NEXT 真机

或者:

华为云真机

来调试输入法。


10、你当前环境本质问题

你现在:

4.2消费者版手机

更偏:

Android兼容态

而:

InputMethodExtensionAbility

是:

NEXT原生体系

所以:

ADB能看到 ≠ HDC一定支持

一句话总结:

HarmonyOS 4.2 消费者版设备通常不适合调试 HarmonyOS NEXT 原生输入法;
InputMethodExtensionAbility 建议使用 HarmonyOS NEXT / HarmonyOS 5+ / HarmonyOS 6 真机或云真机验证。
模拟器 createPanel failed:1001 也大概率属于当前模拟器对系统输入法窗口支持不完整导致。

更多关于HarmonyOS 鸿蒙Next 4.2 真机无法被 hdc 识别,是否支持 DevEco/HDC 调试原生 HAP 输入法?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢解惑,明白了,那我只能把这台MATE XT升级到鸿蒙6了

目前DevEco Studio 5.0.0及以上版本仅适用于HarmonyOS 5以及以上版本设备开发调试使用,低系统版本设备如HarmonyOS 4.x的设备可以使用DevEco Studio 3.1.1 Release版本的IDE,下载地址:DevEco Studio历史版本下载

解决你的前3个问题:

  1. 手机开启开发者模式(一般对关于手机里 软件版本 连续点击开启)。
  2. 手机连数据线,进行4
  3. 手机支持无线调试的话,设置–系统–开发者选项–无线调试,打开回去ip和端口。
    hdc tconn ip:端口,再4。注:电脑手机通WIFI
  4. hdc list targets

关于 InputMethodExtensionAbility
是从API version 9开始支持,理论是可以跑在HarmonyOS4.2上的。试试吧。

感谢,决定还是把手机升级到鸿蒙6,后面还有一大堆开发要做

升吧,好东西在后面😏

建议一直保持最新版吧,后面如果开发的APP用到更高级的能力,也能直接体现的出来

别折腾了,DevEco Studio: 6.1.0.850只支持手机的鸿蒙系统是5.0及以上。

真机的系统版本HarmonyOS 4.2,这个是兼容版本。你用Android Studio吧

决定升级手机系统了,要不后面搞鸿蒙软件开发还是有各种不匹配

是的,也建议升级系统,我现在的鸿蒙测试机都升级到6.1了😁

你使用的 DevEco Studio 6.1.0.850 和 SDK API 23 是为 HarmonyOS NEXT 及更高版本(HarmonyOS 5/6)设计的,而运行 HarmonyOS 4.2 的 HUAWEI GRL-AL10 是较旧的版本,无法与之配套。

问题一:HarmonyOS 4.2机型理论上支持通过DevEco Studio/hdc调用原生HAP

问题二:HarmonyOS 4.2应该是可以出现在hdc list targets

问题三:如果是进行开发调试打开USB连接即可,如果是日志抓取、安装HAP需要打开HDC连接

问题四:如果设备只暴露ADB,不暴露HDC的话,这说明他不应该支持HarmonyOS 原生 HAP / InputMethodExtensionAbility 真机调试

问题五:如果需要验证鸿蒙原生输入法,建议使用HarmonyOS 6/HarmonyOS NEXT进行调试,HarmonyOS 4.2可能因为底层架构问题部分不支持

问题六:因为模拟器受限于窗口管理器和软键盘服务等原因无法使用三方输入法creatPanel,在HarmonyOS真机中应该是可以正常调试验证的

HarmonyOS NEXT 4.2 支持通过 DevEco Studio 和 HDC 调试原生 HAP 输入法。若真机无法被 hdc 识别,需确认 USB 连接模式为“传输文件”或“MIDI”,并确保开发者选项开启且授权。

HarmonyOS 4.2 消费者版基于 AOSP,仅支持 adb,不包含 HDC 服务,因此无法被 hdc 识别,也无法用于原生 HAP 调试。调试基于 Stage 模型的 InputMethodExtensionAbility 必须使用 HarmonyOS NEXT 系统(API 9 及以上)的真机或配套模拟器。
模拟器中 createPanel 失败 1001 是模拟器限制,真实 NEXT 设备可正常创建输入法面板。

回到顶部