在多项目设置中ConfigurationsContainer为空

我的Android项目中有一个多项目设置:

- android - app - lib1 - util 

util我定义了一个配置:

 task createTestJar(type: Jar) { classifier = 'test' from "$projectDir/build/intermediates/classes/test/debug" } configurations { archives archives.transitive = true } artifacts { archives createTestJar } 

我试图在lib1引用它:

 // doesn't work testCompile project(path: ':util', configuration: 'archives') 

我得到这个错误的上述行:

错误:com.android.builder.dependency.level2.JavaDependency无法转换为com.android.builder.dependency.level2.AndroidDependency这个意外错误的可能原因包括:

  • Gradle的依赖关系缓存可能已损坏(有时发生在网络连接超时之后)。重新下载依赖项并同步项目(需要网络)

  • Gradle构建过程(守护进程)的状态可能已损坏。 停止所有的Gradle守护进程可能会解决这个问题。 停止Gradle构建过程(需要重新启动) – 您的项目可能使用与项目中的其他插件或项目请求的Gradle版本不兼容的第三方插件。

在损坏的Gradle进程的情况下,您也可以尝试关闭IDE,然后杀死所有的Java进程。

 // says can't find 'archives' in configuration container testCompile project(':util').configurations.archives.artifacts.files // works if I manually create the jar beforehand testCompile fileTree(dir: "$rootDir/utils/build/libs", include: ['*.jar']) 

我试图打印出我的util模块在lib1有什么配置:

 project(':util').configurations.forEach { println("${it.name}") } 

我得到空的结果。 当我在我的util模块中打印时,我可以看到一个很长的列表,我的archives配置在里面。

任何想法为什么发生这种情况 我听说有一些默认的任务与Android插件的Android没有? 顺便说一句lib1util有这些插件应用:

 apply plugin: 'com.android.library' apply plugin: 'kotlin-android' 

为了将来的参考,事实证明,我错过了这一行在android {}块:

publishNonDefault true