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

构建Expo React Native应用遇Deprecated API报错问题咨询

问题成因

首先明确:你贴出的所有带[stderr] Note:前缀的输出不是构建失败的根因,这些属于Java编译器输出的常规警告,默认不会中断编译流程。
这些警告的触发原因非常明确:

  • 项目中引入的@react-native-async-storage/async-storage、@react-native-community/checkbox、expo-notifications三个依赖的安卓原生层代码,调用了被标记为@Deprecated的安卓系统API或React Native原生桥接API,包维护者尚未将这些调用替换为官方推荐的新API
  • AsyncStoragePackage.java对应的未检查/不安全操作提示,来自原生模块注册时的泛型未做显式类型声明,是React Native旧版原生桥接的通用写法,本身不存在功能问题
    绝大多数情况下,是误把编译警告当成了构建报错,真正中断构建的错误信息在构建日志更靠后的位置,只是截取日志时刚好只拿到了警告段。
解决方案

按优先级依次操作即可:

  1. 定位真正的构建错误
    在完整构建日志中搜索FAILURE: Build failed with an exception、* What went wrong:、[stderr] error:三个关键字,找到真正触发构建中断的错误行,90%以上的场景和现在看到的三个警告完全无关。
  2. 升级适配版本消除警告(可选)
    如果不想每次构建看到这类提示干扰排查,执行以下操作:
    • 运行npx expo install @react-native-async-storage/async-storage @react-native-community/checkbox expo-notifications,该命令会自动安装和当前Expo SDK版本完全兼容的依赖版本,新版依赖通常已经完成了废弃API的替换
    • 使用EAS云构建的话,升级依赖后执行eas build --clear-cache清空构建缓存重新发起构建即可,不要手动修改node_modules内的原生代码
    • 本地调试构建的话,先执行cd android && ./gradlew clean清理安卓构建缓存,再回到项目根目录运行npx expo run:android重新编译
  3. 无其他报错但构建失败的特殊场景处理
    如果翻遍完整日志只有上述警告、没有其他明确错误但构建依然中断,基本是JDK版本不匹配导致:Expo各SDK版本对JDK版本有强制要求,SDK 49及以上版本需要JDK 17,SDK 47-48需要JDK 11,本地构建切换到对应JDK版本即可;EAS云构建则检查eas.json内的build profile是否配置了错误的JDK版本。

内容的提问来源于stack exchange,提问作者user kelto inn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:24:10