未解决的对kotlin库模块中调试目录的引用

时间:2016-02-02 13:07:54

标签: android module kotlin

我第一次使用Kotlin开发Android应用。目前我正在我的项目中处理库模块("数据"),与主app模块分开:

> [Root directory]
    > app
        > [...]
    > data
        > src
            > debug
                > kotlin 
                    > com.domain.app
                        > [...]
            > main
                > kotlin 
                    > com.domain.app
                        > [...]
            > release
                > kotlin 
                    > com.domain.app
                        > [...]

我遇到过障碍:每当 data.src.main 中的文件引用 data.src.debug 中的文件时,构建过程都会失败消息"未解决的参考:[班级名称]"。但是,当我引用 data.src.release 中的文件时,它没有失败。在这两种情况下,我都检查了语法,目录和构建变体。

我还没有在build.gradle文件中修改调试或发布版本类型 - 我使用的是默认设置。我的资源集是:

android {
  ...
  sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
    debug.java.srcDirs += 'src/debug/kotlin'
    release.java.srcDirs += 'src/release/
  }
}

该模块正在使用' com.android.library '和' kotlin-android '插件。到目前为止,我测试过的所有文件都是Kotlin文件,但我不知道这是否是Kotlin问题或其他问题。 Kotlin一直表现得很好。

我认为可能是由默认调试设置引起的,但我也测试 app.src.main 引用 app.src.debug ,尽管使用相同的默认设置,但仍能正常工作。

2 个答案:

答案 0 :(得分:4)

我已确定我的问题是由Android Gradle插件中的此错误引起的:https://code.google.com/p/android/issues/detail?id=52962

来自文档:"默认情况下,库只发布其版本变体。"虽然这个问题是公共知识,但我发现它很难识别 - 它是其中之一,你要么知道它,要么你不知道。陷阱。

无论如何,知道我知道它我已经能够解决它。请参阅解决方案链接中的注释。

答案 1 :(得分:0)

如果您在调试Kotlin代码时出现问题,请在https://stackoverflow.com/a/48270306/1502079查看我的答案。

在我的情况下,问题是由即时运行引起的。