Flutter项目编译报错:':native_pdf_renderer:compileDebugKotlin'执行失败
报错详情
: /Applications/Development/flutter/.pub-cache/hosted/pub.dartlang.org/native_pdf_renderer-4.0.1/android/src/main/kotlin/io/scer/native_pdf_renderer/NativePdfRendererPlugin.kt: (124, 29): 类型不匹配:推断类型为String?但期望是String
e: /Applications/Development/flutter/.pub-cache/hosted/pub.dartlang.org/native_pdf_renderer-4.0.1/android/src/main/kotlin/io/scer/native_pdf_renderer/NativePdfRendererPlugin.kt: (138, 25): 类型不匹配:推断类型为String?但期望是String
2FAILURE: 构建失败,出现异常。
- 出错原因:
任务 ':native_pdf_renderer:compileDebugKotlin' 执行失败。编译错误。查看日志获取更多详情
尝试方案:
使用 --stacktrace 选项获取堆栈跟踪。使用 --info 或 --debug 选项获取更多日志输出。使用 --scan 获取完整分析信息。获取更多帮助:https://help.gradle.org
任务 ':native_pdf_renderer:compileDebugKotlin' 执行失败。
已尝试无效操作
- 执行
flutter clean - 运行
flutter pub upgrade升级所有依赖包
可行解决方案
1. 升级插件到最新版本
native_pdf_renderer 4.0.1版本存在Kotlin空安全兼容问题,后续官方版本已修复该编译错误。在项目的pubspec.yaml中指定插件最新版本,然后执行flutter pub get拉取更新。
2. 本地修改插件代码(临时修复)
- 找到报错文件:
/Applications/Development/flutter/.pub-cache/hosted/pub.dartlang.org/native_pdf_renderer-4.0.1/android/src/main/kotlin/io/scer/native_pdf_renderer/NativePdfRendererPlugin.kt - 定位到124行和138行:
- 针对
String?类型的变量,添加非空断言!!(确认该变量不会为空时使用),例如将val path = args.getString("path")修改为val path = args.getString("path")!! - 或者使用空合并运算符
?:提供默认值,例如val path = args.getString("path") ?: ""
- 针对
- 修改保存后重新运行项目
3. 替换为其他PDF渲染插件
若上述方案无效,可更换为维护更活跃的替代插件,比如pdfx或flutter_pdfview,替换后更新pubspec.yaml依赖并执行flutter pub get。
内容的提问来源于stack exchange,提问作者Gbenga B Ayannuga

