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

使用EAS构建Android React Native项目时遇classifier属性错误

解决Expo Managed项目Android构建失败(expo-firebase-core classifier属性错误)

问题概述

执行eas build -p android --profile preview构建时失败,错误提示:

在/home/expo/workingdir/build/node_modules/expo-firebase-core/android/build.gradle第40行,无法为类型为org.gradle.api.tasks.bundling.Jar的任务:expo-firebase-core:androidSourcesJar设置未知属性'classifier'。

本地模拟器运行正常,已通过Expo项目检查无问题。

核心原因

  1. Firebase依赖冲突:项目同时引入了@react-native-firebase/app(纯React Native Firebase库)和expo-firebase-core(Expo封装的Firebase初始化库),两者的Gradle配置存在冲突。
  2. Gradle版本兼容性:Expo 49使用的Gradle版本(7.x+)已废弃Jar任务的classifier属性,改用archiveClassifier,但expo-firebase-core@6.0.0的配置仍在使用旧属性。

解决方案

方案1:移除冲突的Firebase依赖(推荐)

Expo Managed项目建议统一使用Expo官方的Firebase工具链,避免混用纯RN Firebase库:

  1. 卸载冲突依赖:
npm uninstall @react-native-firebase/app firebase
  1. 确保仅保留Expo的Firebase相关依赖(如expo-firebase-core、expo-firebase-recaptcha等)。
  2. 清理缓存并重新安装依赖:
npm install
npx expo prebuild --clean
  1. 重新执行构建命令:
eas build -p android --profile preview

方案2:修复expo-firebase-core的Gradle配置(保留双Firebase库的场景)

如果必须同时使用两类Firebase库,通过patch-package修改expo-firebase-core的Gradle配置:

  1. 打开node_modules/expo-firebase-core/android/build.gradle,找到第40行:
classifier = 'sources'
  1. 将其替换为:
archiveClassifier = 'sources'
  1. 生成补丁文件:
npx patch-package expo-firebase-core
  1. 将生成的patches/expo-firebase-core+6.0.0.patch文件提交到版本控制,确保CI构建时能自动应用补丁。
  2. 重新执行构建命令。

方案3:升级依赖版本至兼容组合

检查Expo 49的依赖兼容性矩阵,升级expo-firebase-core到适配Gradle 7+的版本,或降级@react-native-firebase/app到与Expo 49兼容的版本(需参考官方文档确认版本匹配关系)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:05:14