You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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
    
  • 清理并重新获取依赖:
    1. 执行命令清理项目缓存:flutter clean
    2. 重新拉取依赖:flutter pub get

原因说明

pointycastle 3.8.0版本引入了仅Node.js环境支持的dart:js_interop_unsafe库,而Flutter Web的浏览器环境不提供该库,导致编译失败。降级到3.7.3版本(该版本未引入此依赖)即可解决问题。

内容的提问来源于stack exchange,提问作者surya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:30:56