kotlin库模块中调试目录的未解决的参考

我第一次使用Kotlin开发Android应用程序。 目前我正在使用我的项目中的一个库模块(“数据”),与主应用程序模块分开:

> [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中的文件时,构建过程将失败,并显示消息“Unresolved reference:[class name]”。 但是,当我在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 ,尽管使用了相同的默认设置,但仍能正常工作。

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

从文档:“默认情况下,库只发布其版本变体。” 虽然这个问题是公共知识,但是我发现很难辨认 – 这是“你知道或者不知道”的其中一个。

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