如何配置Android Studio,执行Make模块/项目时仅构建生产代码?
在Electric Eel 2022.1.1及以后的Android Studio版本中,默认的Make操作会同时构建生产和测试代码,确实会浪费不必要的时间。以下是几种解决方法:
调整模块Gradle依赖
在目标模块的build.gradle(Groovy)或build.gradle.kts(Kotlin)中,移除生产构建任务对测试任务的依赖:
Groovy示例:assembleDebug.dependsOn.removeAll { it.name.contains('Test') }Kotlin示例:
tasks.named("assembleDebug") { dependsOn.removeIf { it.name.contains("Test") } }这样执行
assembleDebug时就不会触发测试代码的构建,而Android Studio的Make命令默认调用的就是该任务(Debug模式下)。设置全局默认构建任务
在项目根目录的settings.gradle(或settings.gradle.kts)中,将默认任务指定为仅生产构建:
Groovy示例:defaultTasks 'assembleDebug'Kotlin示例:
defaultTasks("assembleDebug")注意这个设置是全局的,切换到Release模式时需要手动调整为
assembleRelease。修改编译器命令行参数
打开Android Studio设置(File -> Settings),进入Build, Execution, Deployment -> Compiler,在「Command-line Options」中添加排除测试任务的参数:-x assembleDebugUnitTest -x assembleDebugAndroidTest如果是针对特定模块,加上模块名前缀:
-x :app:assembleDebugUnitTest -x :app:assembleDebugAndroidTest这个设置会让每次Make操作都自动跳过测试代码构建。
直接运行指定Gradle任务
在Android Studio右侧的Gradle面板中,找到目标模块的Tasks -> build目录,双击assembleDebug任务,就能只构建生产代码。嫌麻烦的话,可以把这个任务拖到工具栏快速启动。
内容的提问来源于stack exchange,提问作者Dmitry Ryadnenko

