Flutter添加PDF文件遇Syncfusion组件编译错误,求解决方法
编译错误解决:Flutter中添加PDF文件时的Syncfusion包兼容问题
编译应用时出现以下错误:
/C:/Users/abuze/AppData/Local/Pub/Cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-21.2.6/lib/src/pdfviewer.dart:2074:58: Error: Member not found: 'EdgeInsets.fromViewPadding'. double keyPadHeight = EdgeInsets.fromViewPadding( ^^^^^^^^^^^^^^^ /C:/Users/abuze/AppData/Local/Pub/Cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-21.2.6/lib/src/pdfviewer.dart:2070:27: Error: The getter 'View' isn't defined for the class 'SfPdfViewerState'. 'SfPdfViewerState' is from 'package:syncfusion_flutter_pdfviewer/src/pdfviewer.dart' ('/C:/Users/abuze/AppData/Local/Pub/Cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-21.2.6/lib/src/pdfviewer.dart'). pdfviewer.dart:1 Try correcting the name to the name of an existing getter, or defining a getter or field named 'View'. View.of(context).viewInsets.bottom != 0.0; ^^^^ Failed to compile application. Exited (sigterm)
解决办法
升级Syncfusion PDF Viewer包版本
当前使用的21.2.6版本与新版Flutter SDK的API不兼容,EdgeInsets.fromViewPadding和View.of(context)这类API在新版Flutter中已被调整。直接升级到包的最新稳定版本即可解决该问题:- 打开
pubspec.yaml文件,修改依赖:dependencies: syncfusion_flutter_pdfviewer: ^最新稳定版本号 - 执行命令更新依赖:
flutter pub get
- 打开
匹配Flutter SDK与包版本
若不想升级包,可降级Flutter SDK至21.2.6版本支持的范围(如Flutter 3.0以下版本),但更推荐升级包以获得更好的兼容性和功能更新。更换PDF查看包
若升级后仍有问题,可选择其他成熟的替代包:pdf_flutter:轻量易用,支持本地和网络PDF文件flutter_pdfview:基于原生控件实现,性能表现较好
内容的提问来源于stack exchange,提问作者Abdo Abu-Zeid
相关产品推荐
相关产品推荐

