我的环境是:
代码库分为两个git repos。有核心仓库和主要仓库。模块A作为库存在于核心存储库中,被编译为AAR,并通过maven发布。它包含带有typealias
es和扩展名的Kotlin代码。它编译良好,当我在Android Studio中分析AAR时,classes.jar文件完整显示了具有类型别名,类文件等的类。
然后,我在主仓库中有一个模块B。它具有一个Kotlin Activity类,该类使用模块A中的多个Kotlin类。
当我尝试编译代码时,我得到了对某些类型别名和类的无法解析的引用。
注意事项#1:在将模块A移至核心存储库(作为应用程序重构的一部分)之前,它们都已在主存储库中一起编译,没有任何问题。
注2:核心存储库中的其他模块被编译为AAR,上传到内部Maven存储库,并由模块B正确下拉并编译。因此,据我所知,这不是Maven管道。 / p>
注意#3:在每个模块中都应用了以下几行:
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${app.kotlinVersion}"
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:${app.kotlinVersion}"
kapt "androidx.databinding:databinding-compiler:${app.androidPluginVersion}"
}
apply plugin: 'org.jetbrains.kotlin.android.extensions'
androidExtensions {
experimental = true
}
如果我将相关的软件包从模块A移至模块B,则可以正常编译。但是,相关的软件包已在许多模块中使用,因此我不能将其保留在模块B中。
关于在编译过程中为什么出现这些未解决的参考错误的任何想法?