将模块作为依赖项包含到 KMM 项目的共享模块中
Include a module as a dependency into a KMM project's shared module
我有一个可用的 KMM 应用程序,我有一个 java 模块 mymodule
,我用 File->New->Module->Java or Kotlin library
.
创建了它
该模块位于 androidApp
、iosApp
和 shared
旁边的顶层。在我的 settings.gradle.kts
我有 include(":mymodule")
.
我想在 shared
模块中使用 mymodule
。所以我进入 shared
模块的 build.gradle.kts
并尝试将我的模块包含在 commonMain
:
中
kotlin {
...
sourceSets {
val commonMain by getting {
dependencies {
implementation(project(":mymodule"))
}
}
...
}
...
}
...
错误是Could not resolve MyKMMApplication:mymodule:unspecified
并且:
Could not resolve project :mymodule.
Required by:
project :shared
我尝试过的事情
- 我可以将
dependencies { implementation(project(":mymodule")) }
放在 shared
的 build.gradle.kts
的底部,但仍然出现相同的错误
- 至于测试是否还有其他问题,我也可以将
mymodule
导入到Android项目中没有问题
- 我可以在
commonMain
中包含 implementation("com.squareup.sqldelight:runtime:1.5.3")
并在 shared
模块中看到那些 类 没问题
- docs 说你可以包含另一个多平台模块,但没有关于普通模块的内容。
如何将模块作为依赖包含到 KMM 的共享模块中?
因此,您包含到 shared
中的模块需要是一个多平台模块。它的 build.gradle.kts
文件应如下所示:
plugins {
id("org.jetbrains.kotlin.multiplatform")
}
kotlin {
jvm()
iosX64()
iosArm32()
iosArm64()
}
它的项目结构应该类似于:mymodule/src/commonMain/kotlin/com/example/mymodule/
.
我有一个可用的 KMM 应用程序,我有一个 java 模块 mymodule
,我用 File->New->Module->Java or Kotlin library
.
该模块位于 androidApp
、iosApp
和 shared
旁边的顶层。在我的 settings.gradle.kts
我有 include(":mymodule")
.
我想在 shared
模块中使用 mymodule
。所以我进入 shared
模块的 build.gradle.kts
并尝试将我的模块包含在 commonMain
:
kotlin {
...
sourceSets {
val commonMain by getting {
dependencies {
implementation(project(":mymodule"))
}
}
...
}
...
}
...
错误是Could not resolve MyKMMApplication:mymodule:unspecified
并且:
Could not resolve project :mymodule.
Required by:
project :shared
我尝试过的事情
- 我可以将
dependencies { implementation(project(":mymodule")) }
放在shared
的build.gradle.kts
的底部,但仍然出现相同的错误 - 至于测试是否还有其他问题,我也可以将
mymodule
导入到Android项目中没有问题 - 我可以在
commonMain
中包含implementation("com.squareup.sqldelight:runtime:1.5.3")
并在shared
模块中看到那些 类 没问题 - docs 说你可以包含另一个多平台模块,但没有关于普通模块的内容。
如何将模块作为依赖包含到 KMM 的共享模块中?
因此,您包含到 shared
中的模块需要是一个多平台模块。它的 build.gradle.kts
文件应如下所示:
plugins {
id("org.jetbrains.kotlin.multiplatform")
}
kotlin {
jvm()
iosX64()
iosArm32()
iosArm64()
}
它的项目结构应该类似于:mymodule/src/commonMain/kotlin/com/example/mymodule/
.