Flutter依赖版本冲突求助:local_auth与easy_localization不兼容
问题核心
因为local_auth >=1.1.0 <2.1.3依赖intl ^0.17.0,而SDK中所有版本的flutter_localizations都依赖intl 0.18.1,所以local_auth >=1.1.0 <2.1.3与SDK中的flutter_localizations不兼容。又因为easy_localization >=3.0.0-nullsafety依赖SDK中的flutter_localizations,因此local_auth >=1.1.0 <2.1.3与easy_localization >=3.0.0-nullsafety不兼容。由于项目nelson_service_app同时依赖easy_localization ^3.0.0和local_auth ^1.1.8,导致版本解析失败。
已执行flutter upgrade仍无法解决,可尝试以下方案:
方案一:升级local_auth到兼容版本
修改pubspec.yaml中的依赖,将local_auth ^1.1.8替换为local_auth >=2.1.3(2.1.3及以上版本已适配intl 0.18.x),然后执行:flutter pub get方案二:降级easy_localization到兼容旧intl的版本
若不想升级local_auth,可将easy_localization ^3.0.0替换为easy_localization <3.0.0-nullsafety,该版本不依赖高版本flutter_localizations,适配intl 0.17.0,然后执行:flutter pub get方案三:使用dependency_overrides强制统一intl版本(不推荐)
在pubspec.yaml末尾添加如下配置,强制使用intl 0.18.1:dependency_overrides: intl: ^0.18.1再执行:
flutter pub get注意:此方法可能引发local_auth内部的潜在兼容性问题,仅在前两种方案无法实施时尝试。
内容的提问来源于stack exchange,提问作者Vũ Khang

