如何修复React Native安卓构建报错‘package com.facebook.react.bridge不存在’
React Native Android构建报错解决方案
报错信息
Task :@react-native-community_async-storage:compileReleaseJavaWithJavac FAILED /Users/Desktop/node_modules/@react-native-community/async-storage/android/src/main/java/com/reactnativecommunity/asyncstorage/AsyncLocalStorageUtil.java:10: error: package javax.annotation does not exist import javax.annotation.Nullable; ^ /Users/Desktop/node_modules/@react-native-community/async-storage/android/src/main/java/com/reactnativecommunity/asyncstorage/AsyncLocalStorageUtil.java:20: error: package com.facebook.react.bridge does not exist import com.facebook.react.bridge.ReadableArray;
报错原因
- javax.annotation依赖缺失:Android Gradle Plugin 7.0及以上版本默认移除了对
javax.annotation包的内置支持,而旧版@react-native-community/async-storage仍在使用该包下的Nullable注解。 - 版本不兼容:
@react-native-community/async-storage是已停止维护的旧包,若当前React Native版本较新,旧包无法正确引用RN核心库中的com.facebook.react.bridge相关类。
解决方法
方法一:迁移至官方维护的新版async-storage
旧包已被官方弃用,推荐替换为新包@react-native-async-storage/async-storage,执行以下命令:
# 使用npm npm uninstall @react-native-community/async-storage npm install @react-native-async-storage/async-storage@latest # 使用yarn yarn remove @react-native-community/async-storage yarn add @react-native-async-storage/async-storage@latest
替换后重新构建项目即可解决兼容问题。
方法二:手动添加javax.annotation依赖(临时方案)
若暂时无法迁移包,可在安卓模块的android/app/build.gradle文件的dependencies块中添加依赖:
implementation 'javax.annotation:javax.annotation-api:1.3.2'
添加后同步Gradle并重新构建。
方法三:清理缓存并重新同步依赖
若为缓存或同步异常导致的报错,执行以下步骤:
- 清理npm/yarn缓存:
npm cache clean --force # 或 yarn cache clean - 删除本地依赖文件:
rm -rf node_modules package-lock.json yarn.lock - 重新安装依赖:
npm install # 或 yarn install - 清理安卓构建缓存并重新构建:
cd android ./gradlew clean ./gradlew assembleRelease
内容的提问来源于stack exchange,提问作者akhtar zaman
相关产品推荐
相关产品推荐

