HarmonyOS鸿蒙Next中如何实现跨语言互操作(如 ArkTS 调用 Java/Kotlin)?
HarmonyOS鸿蒙Next中如何实现跨语言互操作(如 ArkTS 调用 Java/Kotlin)? 我们有一个遗留的 Android SDK(用 Kotlin 编写),现在要集成到鸿蒙应用中。鸿蒙是否支持直接调用 Java/Kotlin 代码?还是必须重写为 C++ 或 ArkTS?
开发者您好,请问这边是使用KMP开发的SDK吗?
更多关于HarmonyOS鸿蒙Next中如何实现跨语言互操作(如 ArkTS 调用 Java/Kotlin)?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
不支持的哦,鸿蒙已经完全抛弃安卓的代码,现在报考Java和Kotlin在内的代码都运行不了哦!
写C++ 太费事了,还是直接上ArkTS吧!
鸿蒙不支持直接调用Java/Kotlin,需要重新编译成C或者ArkTS
不支持这样的调用
鸿蒙Next中ArkTS通过FFI机制调用C/C++接口,不支持直接调用Java/Kotlin。跨语言交互需通过Native API绑定C++层,再通过JNI与Java/Kotlin通信。系统提供Native API Kit(如libffi)实现ArkTS与C/C++类型映射,需在Native层编写桥接代码处理数据转换。
在HarmonyOS Next中,ArkTS与Java/Kotlin的互操作方式已明确:不支持直接调用Android的Java/Kotlin代码。Next是纯鸿蒙内核,移除了传统AOSP兼容层。
对于你的遗留Kotlin SDK,推荐路径如下:
-
首选方案:用ArkTS重写SDK核心逻辑
- 这是最彻底的方式,能充分发挥鸿蒙原生性能与特性。
- 如果SDK逻辑较独立,重写工作量可控。
-
过渡方案:通过C++桥接(若SDK包含C++层)
- 若SDK本身有JNI部分或C++实现,可将其编译为HarmonyOS Native库(.so)。
- ArkTS通过
Native API(@ohos.napi)调用这些C++接口。 - 纯Java/Kotlin逻辑仍需用ArkTS实现替代。
-
封装为Web服务(网络场景适用)
- 将SDK部署为后端服务,鸿蒙应用通过HTTP/WebSocket调用。
- 适合非强实时、可网络化的功能。
总结:直接迁移Android代码不可行。建议评估SDK复杂度,优先用ArkTS重构,或通过C++桥接利用现有原生代码。

