升级Android Studio 3.1后构建失败:SourceSet 'instrumentTest'不被识别
解决Android Studio 3.1中SourceSet 'instrumentTest' 识别失败的问题
这个问题我之前帮人排查过,其实是Android Gradle Plugin版本更新带来的配置变更导致的,很容易解决:
问题根源
从Android Gradle Plugin 3.0版本开始,官方就弃用了instrumentTest这个SourceSet标识符,统一改用androidTest来标记仪器化测试的代码目录。你升级到AS3.1后,对应的Gradle插件版本是3.1+,旧的instrumentTest配置自然就不被识别了。
具体解决步骤
- 检查并修改模块的
build.gradle文件:把所有提到instrumentTest的配置替换成androidTest。比如原来的代码:
sourceSets { instrumentTest { java.srcDirs = ['src/instrumentTest/java'] } }
要改成:
sourceSets { androidTest { java.srcDirs = ['src/androidTest/java'] } }
调整测试目录(可选但推荐):如果你的项目里实际存放仪器化测试代码的目录还是
instrumentTest,建议把目录名改成androidTest,和配置保持一致,这样能避免后续可能出现的其他路径相关问题。当然如果不想改目录名,也可以在sourceSets里继续指定原目录路径,但遵循官方规范会更稳妥。处理第三方库的问题:从你的日志来看,报错出现在
:ios_dialog_lib这个模块。如果这是你自己维护的库,直接按照上面的方法修改它的build.gradle即可;如果是远程依赖的第三方库,要么等待库作者更新适配新版本插件,要么暂时降级Gradle插件版本到3.0.1(不长期推荐,毕竟新版本有更多性能优化和功能)。最后同步并重新构建:点击Android Studio右上角的「Sync Now」按钮同步Gradle项目,之后再执行
Clean Project和Rebuild Project,问题应该就能解决了。
内容的提问来源于stack exchange,提问作者stoneInt
相关产品推荐
相关产品推荐

