如何仅为Dev与Debug构建变体集成Flutter模块?
仅为Dev和Debug变体集成Flutter模块的解决方案
一、修改settings.gradle:按需引入Flutter模块
settings.gradle处于Gradle的配置阶段,此时还未解析构建变体,无法直接获取当前变体类型。我们可以通过检查启动的Gradle任务名称来判断是否为Dev/Debug构建,仅在符合条件时引入Flutter模块:
plugins { id "com.gradle.enterprise" version "3.8.1" } gradleEnterprise { buildScan { termsOfServiceUrl = "https://gradle.com/terms-of-service" termsOfServiceAgree = "yes" } } include ':debug' include ':common-views' include ':loggedout' include ':network' include ':view' include ':security' include ':data' include ':archandroid' include ':app' // 仅在Dev或Debug构建时引入Flutter模块 def isDevOrDebugBuild = gradle.startParameter.taskNames.any { taskName -> taskName.toLowerCase().contains("dev") || taskName.toLowerCase().contains("debug") } if (isDevOrDebugBuild) { setBinding(new Binding([gradle: this])) evaluate(new File( settingsDir.parentFile, 'Android/flutter_app_module/.android/include_flutter.groovy' )) include ':flutter_app_module' // 修正路径:父目录下的Android文件夹需添加斜杠 project(':flutter_app_module').projectDir = new File('../Android/flutter_app_module') }
二、修改app的build.gradle:仅为指定变体添加依赖
将原来全局的Flutter依赖改为仅针对Dev和Debug变体:
// 替换原来的implementation project(':flutter') devImplementation project(':flutter') debugImplementation project(':flutter')
如果你的变体是Product Flavor + Build Type组合(比如DevDebug、UatRelease这类),可根据实际情况调整:
// 示例:针对Dev flavor的Debug构建,或所有Debug类型的变体 devDebugImplementation project(':flutter') debugImplementation project(':flutter')
三、代码层面避免编译错误
当构建非Dev/Debug变体时,项目中不能存在Flutter相关的代码调用,否则会触发编译错误。可通过以下方式处理:
- 在build.gradle中为指定变体添加编译标志:
android { buildTypes { debug { buildConfigField "boolean", "USE_FLUTTER", "true" } release { buildConfigField "boolean", "USE_FLUTTER", "false" } } productFlavors { dev { buildConfigField "boolean", "USE_FLUTTER", "true" } uat { buildConfigField "boolean", "USE_FLUTTER", "false" } } }
- 在代码中通过
BuildConfig.USE_FLUTTER做条件判断:
if (BuildConfig.USE_FLUTTER) { // 仅在Dev/Debug变体执行Flutter相关逻辑 Intent intent = FlutterActivity.createDefaultIntent(this); startActivity(intent); }
内容的提问来源于stack exchange,提问作者Sakhawat Hossain
相关产品推荐
相关产品推荐

