Gradle distributionUrl 使用“ionic cordova run android”更改为旧版本,构建失败

Posted

技术标签:

【中文标题】Gradle distributionUrl 使用“ionic cordova run android”更改为旧版本,构建失败【英文标题】:Gradle distributionUrl changes with 'ionic cordova run android' to older version, build failure 【发布时间】:2020-11-11 02:52:29 【问题描述】:

我已将我的 Gradle distributionUrl 从 gradle-4.1-all.zip 更新为 https://services.gradle.org/distributions/gradle-6.1.1-all.zip,但是当我运行 ionic cordova run android 时它会恢复本身回到 4.1-all.zip 文件。这发生在终端到达的时候:

ANDROID_HOME=C:\Users\me\AppData\Local\Android\SDK
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
studio
Subproject Path: CordovaLib

Subproject Path: app

然后导致

FAILURE: Build failed with an exception.

*Where:
Build file 'C:\Users\me\Desktop\....\platforms\android\CordovaLib\build.gradle' line 40

* What went wrong:
A problem occurred evaluating project':CordovaLib'.
> Failed to apply plugin [id 'com.android.internal.version-check']
 > Minimum supported Gradle version is 6.1.1. Current version is 4.1...

在这种情况下,第 40 行是 apply plugin: 'com.android.library'

我看到的问题是 Gradle 版本正在恢复到以前的版本。我怎样才能让它保持在 6.1.1 版本?我应该修复的 com.android.library 插件有问题吗?

我的 gradle 依赖项是:

classpath 'com.andorid.tools.build:gradle:4.0.1'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'

我的ionic info:

cli packages: (C:\Users\bg21562\AppData\Roaming\npm\node_modules)
    @ionic/cli-utils  : 1.19.3
    ionic (Ionic CLI) : 3.20.1
global packages:
    cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
local packages:
    @ionic/app-scripts : 3.2.4
    Cordova Platforms  : android 7.1.4
    Ionic Framework    : ionic-angular 3.9.9
System:
    Android SDK Tools : 26.1.1
    Node              : v8.11.3
    npm               : 6.11.3
    OS                : Windows 10
Environment Variables:
    ANDROID_HOME : C:\Users\Bg21562\AppData\Local\Android\SDK
Misc:
    backend : pro

【问题讨论】:

【参考方案1】:

事实证明,Gradle 版本位于多个位置。

为了解决这个问题,我在以下位置找到了 distributionUrl 作为变量: platforms\android\cordova\lib\builders\StudioBuilder.jsplatforms\android\cordova\lib\builders\GradleBuilder.js

这两个文件都包括

var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-4.1-all.zip';

当然,需要替换为 6.1.1-all.zip

确保也将 gradle-wrapper.properties 文件替换为 6.1.1 gradle 版本。

我还找到了将 CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL 的导出变量添加到 bash 配置文件的选项: export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=http\\://services.gradle.org/distributions/gradle-6.1.1-all.zip

在这里找到最佳答案:Cordova build changes distributionUrl in gradle-wrapper.properties file

【讨论】:

以上是关于Gradle distributionUrl 使用“ionic cordova run android”更改为旧版本,构建失败的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 3.5 搭建 Grails 3.0 项目配置

2018-06-26 IDEA 如何升级gradle wrapper

android studio 离线配置 gradle和依赖

Android:Building " " Gradle project info 问题

Android Studio 一直卡在building解决办法

2021了,我才学会构建Spring源码