作为 Gradle 项目集成到 Android 应用程序中时,KMM 项目上缺少公共类

elc*_*lto 6 android gradle git-submodules kotlin-multiplatform kmm

我有一个现有的 Android 应用程序,我喜欢将 KMM 库项目集成为 git 子模块。我们希望在本地构建上集成 git 子模块,并在 CI 构建上使用 Maven 存储库依赖项。

settings.gradle为了实现这一点,我在via中添加了子模块的目录includeBuild,并替换了特定模块的所有依赖项:

includeBuild('my-kmm-library-project') {
    dependencySubstitution {
        substitute module('com.example.any-kmm-artifact:any') using project(':any')
    }
}
Run Code Online (Sandbox Code Playgroud)

添加

implementation 'com.example.any-kmm-artifact:any:1.0.0'
Run Code Online (Sandbox Code Playgroud)

我的应用程序build.gradle文件允许访问 android 源集中子模块中的所有类和包/my-kmm-library-project/any/src/androidMain。但我无法选择从源集中导入“类” commonMain。我已经尝试让androidMain依赖commonMain.

kmm/build.gradle.kts:

includeBuild('my-kmm-library-project') {
    dependencySubstitution {
        substitute module('com.example.any-kmm-artifact:any') using project(':any')
    }
}
Run Code Online (Sandbox Code Playgroud)

这不会带来任何成功。

我还尝试jvm()在 KMM 项目上添加一个目标并让jvmMain依赖androidMain,但这会产生编译错误,导致 Android SDK 类无法解析。

我认为主要问题是,这些类只是编译到可以组装的aar中。但该模块被集成为 gradle 项目实现。

是否有 KMM 选项来编译“公共类”并通过 gradle 模块访问它们?