Flutter Android构建失败:依赖包脚本报错及Gradle特性弃用问题
解决Flutter Android构建失败问题
一、修复cargokit脚本执行错误(退出码127)
退出码127本质是系统找不到指定命令,irondash_engine_context和super_native_extensions都是基于Rust开发的Flutter插件,必须依赖Rust工具链才能构建。按以下步骤处理:
- 安装Rust工具链:执行命令
跟着终端提示完成安装,安装后重启终端生效。curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - 验证Rust环境:在新终端执行
cargo --version和rustc --version,能正常输出版本号就算安装成功。 - 添加Android交叉编译支持:执行
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android - 确认NDK路径:打开项目的
android/local.properties文件,确保有ndk.dir配置(比如ndk.dir=/Users/你的用户名/Library/Android/sdk/ndk/25.2.9519653),如果没有,手动添加对应NDK路径(Android Studio里可通过SDK Manager查看已安装的NDK版本)。
如果已经装过Rust还是报错,检查终端的PATH变量是否包含$HOME/.cargo/bin,这个是Rust命令的默认安装路径,必须在环境变量里。
二、修复Gradle 8.0兼容问题
依赖包用了Gradle旧特性,和8.0不兼容,又没法改依赖代码,试试这两种方案:
方案1:降级Gradle到兼容版本
- 修改
android/gradle/wrapper/gradle-wrapper.properties里的distributionUrl,换成Gradle 7.6(这个版本对旧插件兼容性更好):distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip - 打开
android/build.gradle,更新Android Gradle Plugin(AGP)版本和Gradle匹配,Gradle 7.6对应AGP 7.4.x,比如:dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 其他classpath依赖保持不变 }
方案2:启用Gradle旧特性兼容模式
不想降级的话,在android/gradle.properties里加以下配置:
android.nonTransitiveRClass=false android.enableJetifier=true org.gradle.warning.mode=all
再在android/build.gradle的android块里添加:
android { // 其他已有配置 lintOptions { checkReleaseBuilds false abortOnError false } }
三、收尾验证
- 执行
flutter clean清除缓存 - 手动删除
android/.gradle目录(彻底清除Gradle本地缓存) - 重新执行
flutter build apk或者在Android Studio里同步项目后构建
内容的提问来源于stack exchange,提问作者Dhwanit Zaveri
相关产品推荐
相关产品推荐

