You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Expo托管工作流构建生产版本时Gradle构建失败求助

Expo托管工作流构建生产版本时Gradle构建失败求助

我完全懂你在Expo托管工作流里构建生产包时遇到这些Gradle报错的崩溃感,折腾了各种依赖版本还是解决不了确实闹心。先帮你把核心问题理清楚,再给你几个针对性的解决思路:

你遇到的两个核心错误

  1. 找不到expo-module-gradle-plugin插件

    出处:/home/expo/workingdir/build/node_modules/expo-crypto/android/build.gradle第3行
    错误信息:Plugin [id: 'expo-module-gradle-plugin'] was not found in any of the following sources...

  2. 无法获取release属性

    出处:/home/expo/workingdir/build/node_modules/expo-modules-core/android/ExpoModulesCorePlugin.gradle第95行
    错误信息:Could not get unknown property 'release' for SoftwareComponent container...

这些问题大多是Expo SDK与依赖版本不兼容,或者Gradle 8.x(你用的是8.10.2)和旧版Expo模块不匹配导致的,试试下面这些步骤:


解决步骤

1. 对齐所有Expo相关依赖的版本

这是最常见的原因:你的expo-cryptoexpo-modules-core等Expo官方包版本,必须和项目根目录的expo版本完全一致,不能混合不同SDK版本的包。

  • 直接用Expo官方的依赖检查命令自动修复:
    npx expo install --check
    
    这个命令会自动把所有Expo相关依赖对齐到当前SDK的兼容版本,不用手动一个个改。

2. 彻底清理缓存后重新构建

缓存经常会搞出各种奇怪的问题,先把旧缓存清干净:

  • 删除本地依赖和锁文件:
    rm -rf node_modules package-lock.json yarn.lock
    
  • 重新安装依赖:npm install(或yarn install
  • 清除Expo的本地缓存:
    npx expo start --clear
    

3. 排查第三方依赖的兼容性

如果项目里有非Expo官方的第三方库,有些旧版本可能不支持Gradle 8.x,尝试把这些库更新到最新稳定版,或者暂时移除可疑的库,测试是否能正常构建。

4. 尝试调整Expo SDK版本(万不得已时)

如果以上方法都不行,可能是当前Expo SDK版本和Gradle 8.10.2存在兼容性问题。你可以尝试降级到一个更稳定的SDK版本(比如SDK 50或49),再重复上面的步骤重新构建。


如果还是解决不了,建议把你的package.json补充完整(尤其是expo和所有依赖的版本信息),这样能更精准地定位问题。

内容来源于stack exchange

火山引擎 最新活动