更新Android Studio至Ladybug后Flutter Android应用无法运行求助
解决方案
1. 迁移Flutter Gradle插件到声明式plugins块
AGP 8.x要求使用声明式plugins块替代旧的apply方式,按以下步骤修改配置:
修改项目级android/build.gradle
替换原有buildscript和apply代码为plugins块:
plugins { id "com.android.application" version "8.3.0" apply false id "org.jetbrains.kotlin.android" version "1.9.20" apply false // Kotlin版本需与你的Flutter版本兼容 id "dev.flutter.flutter-gradle-plugin" version "3.16.0" apply false // 版本需匹配你的Flutter版本(Flutter 3.16+对应此版本) } allprojects { repositories { google() mavenCentral() } }
修改模块级android/app/build.gradle
替换开头的apply代码为plugins块,并确保指定自身项目的namespace:
plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" } android { namespace "com.your.app.package" // 替换为你项目的实际包名 compileSdk 34 defaultConfig { applicationId "com.your.app.package" minSdk 21 // 根据项目需求调整 targetSdk 34 versionCode 1 versionName "1.0" } // 其他原有配置保持不变 }
2. 解决第三方依赖包的Namespace缺失问题
你遇到的flutter_keyboard_visibility等间接依赖包未适配AGP 8.x的namespace要求,无需手动删除包,可按以下方式处理:
方案A:升级所有依赖包到最新版本
运行命令升级所有pub依赖,绝大多数主流包已适配AGP 8.x:
flutter pub upgrade
升级后重新运行项目,问题通常会解决。
方案B:自动为第三方模块添加Namespace
如果某些旧包未更新,在项目级android/build.gradle中添加脚本,自动为所有子模块(包括第三方插件)设置namespace:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { def manifestPath = "${project.projectDir}/src/main/AndroidManifest.xml" def manifestFile = file(manifestPath) if (manifestFile.exists()) { def ns = new XmlSlurper().parse(manifestFile).@package if (ns?.trim()) { namespace ns } else { namespace "com.thirdparty.${project.name}" } } else { namespace "com.thirdparty.${project.name}" } } } } }
该脚本会读取第三方模块的AndroidManifest.xml中的package值作为namespace,若不存在则自动生成默认值。
方案C:临时降级AGP与Gradle(不推荐)
若以上方案无法实施,可临时降级到AGP 7.4.2和Gradle 7.5(无需强制namespace),但这只是临时过渡方案,建议尽快适配新版本:
- 修改
android/build.gradle中的AGP版本为7.4.2 - 修改
gradle/wrapper/gradle-wrapper.properties中的distributionUrl为https\://services.gradle.org/distributions/gradle-7.5-all.zip
额外注意
确保你的Flutter版本为最新,运行flutter upgrade升级Flutter,保证与AGP、Gradle版本兼容。
内容的提问来源于stack exchange,提问作者Krishna prasad
相关产品推荐
相关产品推荐

