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

React Native Android应用AsyncStorage NativeModule为null问题求助

解决[@RNC/AsyncStorage]: NativeModule: AsyncStorage is null 问题

以下是几个未尝试过的排查方向和解决方案:

  • 确认AsyncStorage的安装与导入正确性
    确保你安装的是官方维护的@react-native-async-storage/async-storage包,而非已废弃的旧版react-native-async-storage。执行以下命令重新安装:

    npm uninstall @react-native-async-storage/async-storage
    npm install @react-native-async-storage/async-storage
    

    同时检查导入语句必须为:

    import AsyncStorage from '@react-native-async-storage/async-storage';
    

    禁止使用旧的import { AsyncStorage } from 'react-native';导入方式。

  • 手动配置Android端的Package注册
    若自动链接失效,需手动在MainApplication.java中注册AsyncStorage包:

    // 顶部添加导入
    import com.reactnativecommunity.asyncstorage.AsyncStoragePackage;
    
    @Override
    protected List<ReactPackage> getPackages() {
      List<ReactPackage> packages = new PackageList(this).getPackages();
      // 手动添加这一行
      packages.add(new AsyncStoragePackage());
      return packages;
    }
    

    完成后执行./gradlew clean清理Android构建缓存,再重新编译项目。

  • 彻底清除所有缓存
    除了--reset-cache启动打包工具,还可以执行以下操作彻底清理:

    1. 删除项目根目录下的node_modules文件夹,重新执行npm install
    2. 删除Android端的构建缓存:./gradlew clean
    3. 删除Metro缓存:rm -rf node_modules/.cache/metro-react-native-babel-transformer(Mac/Linux)或直接删除.cache文件夹
  • 统一AsyncStorage版本解决依赖冲突
    升级native-base后可能出现依赖版本冲突,可强制项目使用统一的AsyncStorage版本:
    在package.json中添加(npm >=8.3版本适用):

    "overrides": {
      "@react-native-async-storage/async-storage": "^1.19.0"
    }
    

    若使用Yarn,则添加:

    "resolutions": {
      "@react-native-async-storage/async-storage": "^1.19.0"
    }
    

    之后重新安装依赖并构建项目。

  • 切换至真机测试
    部分模拟器环境可能存在缓存或配置异常,尝试将应用部署到Android真机上运行,排查是否为模拟器专属问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:45:09