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

Cordova Android Gradle构建组件不兼容问题求助

Cordova Android构建兼容问题解决方案

问题描述

首次搭建Cordova项目,尝试通过cordova run android --device在已连接的安卓手机上测试,构建失败。当前环境配置:

  • Java 8
  • Gradle 7.4.2
  • 最低Android SDK 24
  • 目标Android SDK 34

核心报错原因:com.android.tools.build:gradle:7.4.2要求兼容Java 11,但当前使用Java 8;同时存在Gradle插件API版本不匹配问题。

错误日志

Checking Java JDK and Android SDK versions
ANDROID_HOME=C:\android_sdk (recommended setting)
ANDROID_SDK_ROOT=C:\android_sdk\cmdline-tools\latest\bin (DEPRECATED)
Using Android SDK: C:\android_sdk
Subproject Path: CordovaLib
Subproject Path: app

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'WeddingLink'.
> Could not resolve all files for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:7.4.2.
     Required by:
         project :
      > No matching variant of com.android.tools.build:gradle:7.4.2 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6' but:
          - Variant 'apiElements' capability com.android.tools.build:gradle:7.4.2 declares a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares an API of a component compatible with Java 11 and the consumer needed a runtime of a component compatible with Java 8
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '7.6')
          - Variant 'javadocElements' capability com.android.tools.build:gradle:7.4.2 declares a runtime of a component, and its dependencies declared externally:
              - Incompatible because this component declares documentation and the consumer needed a library
              - Other compatible attributes:
                  - Doesn't say anything about its target Java version (required compatibility with Java 8)
                  - Doesn't say anything about its elements (required them packaged as a jar)
                  - Doesn't say anything about org.gradle.plugin.api-version (required '7.6')
          - Variant 'runtimeElements' capability com.android.tools.build:gradle:7.4.2 declares a runtime of a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 8
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '7.6')
          - Variant 'sourcesElements' capability com.android.tools.build:gradle:7.4.2 declares a runtime of a component, and its dependencies declared externally:
              - Incompatible because this component declares documentation and the consumer needed a library
              - Other compatible attributes:
                  - Doesn't say anything about its target Java version (required compatibility with Java 8)
                  - Doesn't say anything about its elements (required them packaged as a jar)
                  - Doesn't say anything about org.gradle.plugin.api-version (required '7.6')

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 2s
Command failed with exit code 1: G:\CordovaProjects\WeddingLink\platforms\android\gradlew -b G:\CordovaProjects\WeddingLink\platforms\android\build.gradle cdvBuildDebug

解决方案

路径一:升级Java到11(推荐,适配目标SDK 34)

  • 安装JDK 11,将系统环境变量JAVA_HOME指向JDK 11的安装路径,并把JDK 11的bin目录加入系统PATH。
  • 匹配Gradle与插件版本:打开项目下platforms/android/gradle/wrapper/gradle-wrapper.properties,将distributionUrl修改为https\://services.gradle.org/distributions/gradle-7.5-all.zip(Gradle 7.5与Android Gradle插件7.4.2兼容)。

路径二:降级插件与Gradle以兼容Java 8(仅适合无需高版本SDK支持的场景)

  • 修改Android Gradle插件版本:打开platforms/android/build.gradle,找到dependencies块中的classpath 'com.android.tools.build:gradle:7.4.2',替换为classpath 'com.android.tools.build:gradle:4.2.2'。
  • 修改Gradle版本:打开platforms/android/gradle/wrapper/gradle-wrapper.properties,将distributionUrl修改为https\://services.gradle.org/distributions/gradle-6.7.1-all.zip(Gradle 6.7.1与插件4.2.2兼容)。
  • 注意:此路径下插件4.2.2最高仅支持Android SDK 30,若目标SDK为34会出现新的兼容问题,不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:26:10