Flutter Web用pdf包时出现dart:js_interop_unsafe平台不可用错误求助
解决Flutter Web使用pdf包时的
dart:js_interop_unsafe不可用错误 错误详情
/C:/Users/ravir/AppData/Local/Pub/Cache/hosted/pub.dev/pointycastle-3.8.0/lib/src/platform_check/node_crypto.dart:5:8: Error: Dart library 'dart:js_interop_unsafe' is not available on this platform. import 'dart:js_interop_unsafe'; ^ Context: The unavailable library 'dart:js_interop_unsafe' is imported through these packages: web_entrypoint.dart => package:nrm_guide => package:pdf => package:image => package:archive => package:pointycastle => dart:js_interop_unsafe ... Detailed import paths for (some of) the these imports: web_entrypoint.dart => package:nrm_guide/main.dart => package:nrm_guide/dashboard.dart => package:pdf/widgets.dart => package:pdf/src/widgets/annotations.dart => package:pdf/pdf.dart => package:pdf/src/pdf/document.dart => package:pdf/src/pdf/graphic_state.dart => package:pdf/src/pdf/obj/smask.dart => package:pdf/src/pdf/graphics.dart => package:pdf/src/pdf/obj/image.dart => package:image/image.dart => package:image/src/command/command.dart => package:image/src/filter/dither_image.dart => package:image/src/image/image.dart => package:image/src/image/icc_profile.dart => package:archive/archive.dart => package:archive/src/util/aes.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/ecc/ecc_base.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
解决方案
- 锁定pointycastle兼容版本:在项目的
pubspec.yaml中添加指定版本的pointycastle依赖,覆盖链式依赖带来的高版本:dependencies: # 保留原有其他依赖... pointycastle: ^3.7.3 - 清理并重新获取依赖:
- 执行命令清理项目缓存:
flutter clean - 重新拉取依赖:
flutter pub get
- 执行命令清理项目缓存:
原因说明
pointycastle 3.8.0版本引入了仅Node.js环境支持的dart:js_interop_unsafe库,而Flutter Web的浏览器环境不提供该库,导致编译失败。降级到3.7.3版本(该版本未引入此依赖)即可解决问题。
内容的提问来源于stack exchange,提问作者surya
相关产品推荐
相关产品推荐

