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

React Native中如何压缩文件夹?使用react-native-zip-archive遇错求助

React Native 使用 react-native-zip-archive 报错 TypeError: Cannot read property 'zipFolder' of null 的解决方法

以下是几个排查和解决的方向:

  • 确认模块安装与链接状态
    若你的React Native版本低于0.60,安装模块后必须手动执行链接命令:

    react-native link react-native-zip-archive
    

    0.60+版本虽支持自动链接,但仍可能出现链接异常,可尝试重新安装模块:

    # yarn 方式
    yarn remove react-native-zip-archive
    yarn add react-native-zip-archive
    
    # npm 方式
    npm uninstall react-native-zip-archive
    npm install react-native-zip-archive
    

    操作完成后重启Metro服务,并重新编译项目(Android执行./gradlew clean,iOS执行pod install后重新构建)。

  • 检查导入方式是否正确
    确保你正确导入了模块的zip方法,同时确认已安装并导入react-native-fs:

    import { zip } from 'react-native-zip-archive';
    import FileSystem from 'react-native-fs';
    

    错误的导入方式会导致方法无法被正确调用,进而触发类似报错。

  • 修正路径格式错误
    你提供的代码中,targetPath末尾多了斜杠——backup.zip是目标文件而非文件夹,必须去掉末尾的/:

    const targetPath = `${FileSystem.documentDirectory}backup.zip`;
    const sourcePath = `${FileSystem.documentDirectory}backup/`;
    

    路径格式错误会导致模块内部逻辑异常,引发报错。

  • 配置Android权限
    在AndroidManifest.xml中添加存储权限:

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    

    针对Android 10及以上版本,需在application标签内添加:

    android:requestLegacyExternalStorage="true"
    

    同时要在代码中动态申请权限,确保应用获得读写权限后再执行压缩操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:52:42