Flutter运行安卓模拟器报processDebugMainManifest任务执行失败错误求解
Flutter安卓模拟器运行报错解决方案
问题根源
核心由两个问题导致:
- 项目使用旧版Android Embedding v1,已被官方弃用,可能引发兼容异常
- Android Gradle插件(AGP)版本与Gradle版本不匹配,触发Java模块访问权限报错
分步操作
1. 迁移Android Embedding到v2
- 打开
android/app/src/main/AndroidManifest.xml文件:- 找到
<application>标签,删除android:name="io.flutter.app.FlutterApplication"属性,替换为android:name="${applicationName}" - 在
<application>标签内部新增子标签:<meta-data android:name="flutterEmbedding" android:value="2" /> - 找到
<activity>标签,删除其内部包含android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"的<meta-data>标签
- 找到
- 打开
android/app/src/main/kotlin/[你的包名路径]/MainActivity.kt(Java项目对应MainActivity.java):- 将父类替换为
io.flutter.embedding.android.FlutterActivity - 删除
onCreate方法中GeneratedPluginRegistrant.registerWith(flutterEngine)相关代码
- 将父类替换为
2. 修复Gradle版本兼容问题
二选一即可,推荐方案一稳定性更高:
方案一:降低Gradle版本适配现有AGP
修改gradle-wrapper.properties文件中的distributionUrl配置为:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
android/build.gradle中的AGP版本classpath 'com.android.tools.build:gradle:4.2.0'保持不变即可。
方案二:升级AGP版本适配现有Gradle
修改android/build.gradle中的AGP依赖版本为:
classpath 'com.android.tools.build:gradle:7.0.4'
gradle-wrapper.properties中的Gradle7.2配置保持不变即可。
3. 清理缓存重新构建
依次在项目根目录执行以下命令:
- 清理Flutter缓存:
flutter clean - 重新拉取依赖:
flutter pub get - 清理Android构建缓存:进入android目录执行
./gradlew clean(Windows系统执行gradlew clean) - 重新运行项目:
flutter run
提示:日志中出现的Mapping new ns相关警告不影响正常构建,可忽略。
内容的提问来源于stack exchange,提问作者EhCanadianGuy27 COD
相关产品推荐
相关产品推荐

