Android Gradle插件不识别自定义SourceSet 'commonTest',求有效解决方案
排查commonTest SourceSet共享测试代码失效的问题
我懂这种明明问题根源看似一致,但现成解决方案就是不生效的挫败感!先把你的配置贴出来方便分析:
sourceSets { // 这让我们可以编写可同时用于单元测试和Android测试的测试工具代码 commonTest { java } test { java.srcDirs += commonTest.java.srcDirs } androidTest { java.srcDirs += commonTest.java.srcDirs } }
下面给你几个针对性的排查和调整方向,你可以逐一试试:
检查目录结构是否匹配
确保你的commonTest对应的目录是src/commonTest/java,Gradle默认会按照SourceSet名称匹配对应目录,要是目录名写错了,配置再正确也找不到代码。调整目录引用的写法
有时候直接追加目录可能会有路径解析或优先级问题,试试替换成更明确的写法:commonTest { java.srcDir 'src/commonTest/java' } test { java.srcDirs += commonTest.java.srcDirs } androidTest { java.srcDirs += commonTest.java.srcDirs }或者直接指定路径:
test { java.srcDirs += 'src/commonTest/java' } androidTest { java.srcDirs += 'src/commonTest/java' }确认依赖是否同步覆盖
如果commonTest里用到了测试库,得确保test和androidTest的依赖块包含这些库,或者用新版Gradle的公共依赖配置:dependencies { commonTestImplementation 'junit:junit:4.13.2' testImplementation project(path: ':app', configuration: 'commonTestRuntimeElements') androidTestImplementation project(path: ':app', configuration: 'commonTestRuntimeElements') }清理Gradle缓存并重新同步
Gradle的缓存偶尔会导致路径解析异常,试试执行./gradlew clean后重新同步项目,说不定能解决缓存冲突问题。检查Android Gradle插件版本
不同版本的AGP对SourceSet的处理逻辑有差异,如果你用的是较旧版本,试试升级到稳定版,或者参考对应版本的官方文档调整配置。
内容的提问来源于stack exchange,提问作者TonyR
相关产品推荐
相关产品推荐

