如何修复Flutter报错:Execution failed for task ':app:compileDebugKotlin'?
解决Flutter在Android模拟器运行时的MainActivity编译错误
问题根源
从错误日志可明确核心问题:
- FlutterActivity导入冲突:代码重复导入不同版本的
FlutterActivity,导致命名歧义 - 重复的MainActivity文件:项目中存在两个路径的
MainActivity.kt(simple_exercise_timer和simpleexercisetimer目录下),MacOS文件系统默认不区分大小写,但编译时会识别为独立目录,引发编译混乱
解决方案
1. 删除重复的MainActivity文件
进入android/app/src/main/kotlin/com/arhanbusam/目录,保留与项目包名(pubspec.yaml中name字段)一致的文件夹,删除另一个大小写不一致的目录。
2. 修正MainActivity.kt代码
打开保留的MainActivity.kt,执行以下修改:
- 删除冲突导入语句,仅保留新版Flutter的导入:
import io.flutter.embedding.android.FlutterActivity - 修正类继承与方法实现,使用新版FlutterActivity标准结构:
若无需自定义配置,可简化为:class MainActivity : FlutterActivity() { // 无需自定义引擎配置时,仅保留上述继承即可 // 如需配置插件,重写以下方法: override fun configureFlutterEngine(flutterEngine: FlutterEngine) { super.configureFlutterEngine(flutterEngine) // 在此添加自定义插件注册逻辑 } }import io.flutter.embedding.android.FlutterActivity class MainActivity : FlutterActivity()
3. 重新执行编译流程
依次执行命令:
flutter clean flutter pub get flutter run
注意事项
MacOS文件系统默认不区分文件名大小写,创建目录或文件时需严格匹配项目包名的大小写,避免出现本地看似正常但编译时识别为重复资源的问题。
内容的提问来源于stack exchange,提问作者Arhan Reddy Busam
相关产品推荐
相关产品推荐

