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

Windows WSL环境本地构建Expo项目遇Gradle-Java版本兼容错误求助

Expo托管项目WSL本地Android构建失败解决方案

问题背景

我在Windows机器上运行Linux WSL服务器,项目为Expo托管项目,希望本地构建不依赖EAS服务器。在项目目录打开Linux Shell执行命令:

eas build --platform android --profile production --local

但构建失败,错误信息如下:

FAILURE: 构建失败,出现异常。
[RUN_GRADLEW] * 出错原因:
[RUN_GRADLEW] 配置根项目'myProjectName'时出现问题。
[RUN_GRADLEW] > 无法确定null的依赖项。
[RUN_GRADLEW] > 无法解析配置':classpath'的所有任务依赖项。
[RUN_GRADLEW]       > 无法解析com.android.tools.build:gradle:7.4.1。
[RUN_GRADLEW]         被以下项目依赖:
[RUN_GRADLEW] project :
[RUN_GRADLEW]          > 未找到com.android.tools.build:gradle:7.4.1的匹配变体。消费者配置为寻找
[RUN_GRADLEW] 兼容Java 8的库运行时,打包为jar,依赖项外部声明,以及属性'org.gradle.plugin.api-version'值为'7.5.1',但:
[RUN_GRADLEW]              - 变体'apiElements'的能力com.android.tools.build:gradle:7.4.1声明
[RUN_GRADLEW] 一个库,打包为jar,依赖项外部声明:
[RUN_GRADLEW]                  - 不兼容,因为该组件声明了兼容Java 11的API组件,而消费者需要
[RUN_GRADLEW] 兼容Java 8的运行时组件
[RUN_GRADLEW]                  - 其他兼容属性:
[RUN_GRADLEW]                      - 未提及
[RUN_GRADLEW] org.gradle.plugin.api-version (要求值为'7.5.1')
[RUN_GRADLEW]              - 变体'javadocElements'的能力com.android.tools.build:gradle:7.4.1声明
[RUN_GRADLEW] 组件的运行时,依赖项外部声明:
[RUN_GRADLEW]                  - 不兼容,因为该组件声明为文档,而消费者需要库
[RUN_GRADLEW] - 其他兼容属性:
[RUN_GRADLEW]                      - 未提及目标Java版本(要求兼容Java 8)
[RUN_GRADLEW] - 未提及元素打包方式(要求打包为jar)
[RUN_GRADLEW]                      - 未提及
[RUN_GRADLEW] org.gradle.plugin.api-version (要求值为'7.5.1')
[RUN_GRADLEW]              - 变体'runtimeElements'的能力com.android.tools.build:gradle:7.4.1声明库的运行时,打包为jar,依赖项外部声明:
[RUN_GRADLEW] - 不兼容,因为该组件声明兼容Java 11,而消费者需要兼容Java 8的组件
[RUN_GRADLEW]                  - 其他兼容属性:
[RUN_GRADLEW]                      - 未提及org.gradle.plugin.api-version (要求值为'7.5.1')
[RUN_GRADLEW]              - 变体'sourcesElements'的能力com.android.tools.build:gradle:7.4.1声明组件的运行时,依赖项外部声明:
[RUN_GRADLEW] - 不兼容,因为该组件声明为文档,而消费者需要库
[RUN_GRADLEW]                  - 其他兼容属性:
[RUN_GRADLEW]                      - 未提及目标Java版本(要求兼容Java 8)
[RUN_GRADLEW]                      - 未提及元素打包方式(要求打包为jar)
[RUN_GRADLEW]                      - 未提及org.gradle.plugin.api-version (要求值为'7.5.1')
[RUN_GRADLEW]       > 无法解析com.android.tools.build:gradle:7.3.1。
[RUN_GRADLEW]         被以下项目依赖:
[RUN_GRADLEW] project : > project :react-native-gradle-plugin
[RUN_GRADLEW]          > 未找到com.android.tools.build:gradle:7.4.1的匹配变体。消费者配置为寻找兼容Java 8的库运行时,打包为jar,依赖项外部声明,以及属性'org.gradle.plugin.api-version'值为'7.5.1',但:
[RUN_GRADLEW]              - 变体'apiElements'的能力com.android.tools.build:gradle:7.4.1声明库,打包为jar,依赖项外部声明:
[RUN_GRADLEW]                  - 不兼容,因为该组件声明了兼容Java 11的API组件,而消费者需要兼容Java 8的运行时组件
[RUN_GRADLEW]                  - 其他兼容属性:
[RUN_GRADLEW]                      - 未提及org.gradle.plugin.api-version (要求值为'7.5.1')
[RUN_GRADLEW]              - 变体'javadocElements'的能力com.android.tools.build:gradle:7.4.1声明组件的运行时,依赖项外部声明:
[RUN_GRADLEW]                  - 不兼容,因为该组件声明为文档,而消费者需要库
[RUN_GRADLEW]                  - 其他兼容属性:
[RUN_GRADLEW]                      - 未提及目标Java版本(要求兼容Java 8)
[RUN_GRADLEW]                      - 未提及元素打包方式(要求打包为jar)
[RUN_GRADLEW]                      - 未提及org.gradle.plugin.api-version (要求值为'7.5.1')
[RUN_GRADLEW]              - 变体'runtimeElements'的能力com.android.tools.build:gradle:7.4.1声明库的运行时,打包为jar,依赖项外部声明:
[RUN_GRADLEW]                  - 不兼容,因为该组件声明兼容Java 11
[RUN_GRADLEW] 而消费者需要兼容Java 8的组件
[RUN_GRADLEW]                  - 其他兼容属性:
[RUN_GRADLEW]                      - 未提及org.gradle.plugin.api-version (要求值为'7.5.1')
[RUN_GRADLEW]              - 变体'sourcesElements'的能力com.android.tools.build:gradle:7.4.1声明组件的运行时,依赖项外部声明:
[RUN_GRADLEW]                  - 不兼容,因为该组件声明为文档,而消费者需要库
[RUN_GRADLEW]                  - 其他兼容属性:
[RUN_GRADLEW]                      - 未提及目标Java版本(要求兼容Java 8)
[RUN_GRADLEW]                      - 未提及元素打包方式(要求打包为jar)
[RUN_GRADLEW]                      - 未提及org.gradle.plugin.api-version (要求值为'7.5.1')

当前环境信息

Java版本

openjdk 版本 "17.0.8.1" 2023-08-24
OpenJDK 运行环境 (build 17.0.8.1+1-Ubuntu-0ubuntu122.04)
OpenJDK 64位服务器VM (build 17.0.8.1+1-Ubuntu-0ubuntu122.04, 混合模式, 共享)

Gradle版本

gradle -version =

------------------------------------------------------------
Gradle 7.4.1
------------------------------------------------------------

构建时间:   2022-03-09 15:04:47 UTC
修订版本:     36dc52588e09b4b72f2010bc07599e0ee0434e2e

Kotlin:       1.5.31
Groovy:       3.0.9
Ant:          Apache Ant(TM) 版本 1.10.11 编译于 2021年7月10日
JVM:          1.8.0_382 (Private Build 25.382-b05)
操作系统:           Linux 5.10.16.3-microsoft-standard-WSL2 amd64

解决步骤

1. 统一Java版本适配

错误核心是Android Gradle插件7.4.1需要Java 11运行环境,但当前Gradle实际使用的是Java 8(看Gradle版本输出的JVM信息),系统全局Java是17,需要让Gradle使用兼容的Java版本:

  • 在WSL中安装OpenJDK 11:
    sudo apt update && sudo apt install openjdk-11-jdk
    
  • 配置Gradle使用Java 11:
    在项目根目录创建或修改gradle.properties文件,添加以下内容(路径根据实际安装位置调整,可通过update-alternatives --list java查看):
    org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64
    

2. 对齐Gradle版本与插件版本

错误提示消费者需要org.gradle.plugin.api-version为7.5.1,但当前Gradle是7.4.1,Android Gradle插件7.4.1对应的Gradle版本应为7.5,需升级Gradle:

  • 安装Gradle 7.5:
    sudo apt install gradle-7.5
    
  • 切换默认Gradle版本:
    sudo update-alternatives --install /usr/bin/gradle gradle /usr/lib/gradle/7.5/bin/gradle 1
    sudo update-alternatives --config gradle
    
    执行后选择7.5版本即可。

3. 清理缓存重新构建

清理旧缓存避免干扰,然后重新执行构建命令:

./gradlew clean
rm -rf ~/.gradle/caches
eas build --platform android --profile production --local

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:22:33