Flutter Android NDK版本冲突:插件要求27.0.12077973但项目使用26.3.11579264
Flutter Android NDK版本冲突:插件要求27.0.12077973但项目使用26.3.11579264
嘿,这种NDK版本不兼容的坑我之前也踩过,给你整理了几个实用的解决思路,你可以根据自己的情况选:
方法一:升级项目NDK到插件要求的版本(最推荐)
这是最稳妥的做法,直接把项目的NDK版本统一成插件需要的27.0.12077973:
- 打开Android项目根目录下的
android/build.gradle文件(注意是根目录的那个,不是app模块里的) - 找到或者添加
ext配置块,指定NDK版本:ext { ndkVersion = "27.0.12077973" } - 要是你习惯用Android Studio可视化操作,也可以打开SDK Manager → 切换到SDK Tools标签 → 勾选「Show Package Details」 → 找到「NDK (Side by side)」,勾选27.0.12077973版本安装,装完同步项目就好。
方法二:强制所有插件使用项目当前的NDK版本(谨慎使用)
如果你暂时不想升级NDK,可以试试让插件兼容你当前的26.3.11579264版本,但得提醒你可能存在功能异常风险——毕竟插件是基于指定NDK开发的,版本不匹配容易出问题:
- 打开
android/app/build.gradle文件 - 在
android代码块里添加版本统一配置:android { // 这里保留你原有的其他配置,比如compileSdkVersion、defaultConfig等 configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.android.ndk') { details.useVersion '26.3.11579264' } } } } - 同步项目后一定要测试所有插件的功能,如果出现崩溃或功能失效,赶紧换回方法一。
方法三:降级插件到兼容当前NDK的版本
要是实在不想升级NDK,你可以去pub.dev查每个冲突插件的版本历史,找到支持NDK 26的旧版本,然后修改 pubspec.yaml 里的插件版本号:
比如:
connectivity_plus: ^4.0.0 # 替换为实际兼容的版本号 firebase_core: ^2.15.0 flutter_localization: ^0.14.0 flutter_secure_storage: ^8.0.0 path_provider_android: ^2.0.0 shared_preferences_android: ^2.0.0
不过这个方法比较繁琐,得逐个验证插件版本的兼容性,而且后续插件更新也会受限制,所以优先推荐方法一。
备注:内容来源于stack exchange,提问作者Yasser Mohamed




