You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动