公共(共享)模块中具有 Java 个源的 KMM
KMM with Java sources in common (shared) module
作为平台限制,我们无法将 Java 源与 Kotlin Multiplatform Mobile 一起使用。
但是如果 Kotlin 与 Java 100% 兼容,为什么我们不能将 Java 与 Kotlin Multiplatform Mobile 一起使用?我的意思是不仅在 Android 或 JVM 部分使用它,而且在共享代码的公共部分使用它。我们可以用 Java 编写 iOS 应用程序 :)
Kotlin/JVM 确实可以与 Java 互操作,但是 KMM 有两个目标:Native 和 Android。这意味着在公共代码中,您只能使用可以由 Kotlin/JVM 和 Kotlin/Native 编译器编译的依赖项。
在您的情况下,当尝试在您的公共代码中添加 java 依赖项时,Kotlin/Native 将不知道如何将其转换为 iOS。
你可以做的是用 expect/actual
抽象出 JVM 部分,并为 Kotlin/Native 编译器提供一个它可以理解的实现,但你将无法使用任何 Java 图书馆原样。
作为平台限制,我们无法将 Java 源与 Kotlin Multiplatform Mobile 一起使用。
但是如果 Kotlin 与 Java 100% 兼容,为什么我们不能将 Java 与 Kotlin Multiplatform Mobile 一起使用?我的意思是不仅在 Android 或 JVM 部分使用它,而且在共享代码的公共部分使用它。我们可以用 Java 编写 iOS 应用程序 :)
Kotlin/JVM 确实可以与 Java 互操作,但是 KMM 有两个目标:Native 和 Android。这意味着在公共代码中,您只能使用可以由 Kotlin/JVM 和 Kotlin/Native 编译器编译的依赖项。
在您的情况下,当尝试在您的公共代码中添加 java 依赖项时,Kotlin/Native 将不知道如何将其转换为 iOS。
你可以做的是用 expect/actual
抽象出 JVM 部分,并为 Kotlin/Native 编译器提供一个它可以理解的实现,但你将无法使用任何 Java 图书馆原样。