多模块Android项目无法在模块之间找到Kotlin类

时间:2018-11-16 18:15:24

标签: android maven gradle kotlin

我的环境是:

  • Android Studio 3.3
  • Gradle插件:3.2.0
  • 版本版本:4.10.1
  • 科特林1.2.71(我也尝试过1.3.10)

代码库分为两个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中。

关于在编译过程中为什么出现这些未解决的参考错误的任何想法?

0 个答案:

没有答案