React-Native 0.76.1中react-native-pdf-thumbnail 1.3.1构建失败求助
解决React Native 0.76.1升级后react-native-pdf-thumbnail编译错误
错误原因
React Native 0.76.1升级后,Android端Kotlin空安全检查标准更严格,react-native-pdf-thumbnail库的PdfThumbnailModule.kt第101行代码中,传入的Bitmap.Config?(可空类型)与编译要求的非空Bitmap.Config类型不匹配,导致编译失败。
解决方案
方案1:升级库到适配RN 0.76的版本
先检查react-native-pdf-thumbnail是否有适配RN 0.76的新版本,执行命令更新:
npm update react-native-pdf-thumbnail # 或使用yarn yarn upgrade react-native-pdf-thumbnail
更新后重新运行构建,若新版本已修复该问题,即可解决报错。
方案2:手动修改库代码(临时修复)
如果库暂无适配版本,直接修改node_modules中的对应文件:
- 打开文件:
/Users/myuser/Documents/myproject/node_modules/react-native-pdf-thumbnail/android/src/main/java/org/songsterq/pdfthumbnail/PdfThumbnailModule.kt - 定位到第101行,将可空的
Bitmap.Config?转为非空类型,二选一即可:- 方式A(确保该值不会为null时使用):用
!!强制断言非空// 原代码示例:Bitmap.createBitmap(width, height, config) // 修改后: Bitmap.createBitmap(width, height, config!!) - 方式B(更安全,避免空指针):提供默认配置
Bitmap.createBitmap(width, height, config ?: Bitmap.Config.ARGB_8888)
- 方式A(确保该值不会为null时使用):用
- 保存文件后重新执行构建:
npx react-native run-android
方案3:用patch-package持久化修改
为避免每次npm install后修改被覆盖,用patch-package生成持久化补丁:
- 安装
patch-package:npm install patch-package --save-dev # 或yarn yarn add patch-package postinstall-postinstall --dev - 修改完库代码后,生成补丁文件:
npx patch-package react-native-pdf-thumbnail - 项目根目录会生成
patches/react-native-pdf-thumbnail+[对应版本号].patch文件,将该文件提交到版本控制。后续执行npm install时,补丁会自动应用到库文件中。
内容的提问来源于stack exchange,提问作者Aron
相关产品推荐
相关产品推荐

