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启动打包工具,还可以执行以下操作彻底清理:- 删除项目根目录下的
node_modules文件夹,重新执行npm install - 删除Android端的构建缓存:
./gradlew clean - 删除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
相关产品推荐
相关产品推荐

