【问题标题】:Unresolved reference to debug directory in kotlin library module未解决对 kotlin 库模块中调试目录的引用
【发布时间】:2016-02-02 13:07:54
【问题描述】:

我第一次使用 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 中的文件时,构建过程都会失败并显示消息“未解析的引用:[类名]”。但是,当我引用 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 module kotlin


    【解决方案1】:

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

    来自文档:“默认情况下,库仅发布其发布变体。”虽然这个问题是公开的知识,但我发现它非常难以识别 - 它是“你要么知道要么不知道”的陷阱之一。

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

    【讨论】:

      【解决方案2】:

      如果您在调试 Kotlin 代码时遇到问题,请在此处查看我的回答 https://stackoverflow.com/a/48270306/1502079

      在我的情况下,问题是由 Instant run 引起的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-05
        • 2014-11-01
        相关资源
        最近更新 更多