【问题标题】:Cordova 6.1.0 with Gradle error带有 Gradle 错误的 Cordova 6.1.0
【发布时间】:2016-03-29 08:21:35
【问题描述】:

将cordova更新到新版本6.1.0和将cordova中的android平台更新到5.1.1后,运行coroda build android。

出了什么问题:

配置根项目“android”时出现问题。

无法解析配置 ':classpath' 的所有依赖项。

找不到 com.android.tools.build:gradle:1.5.0。

要求:

:android:未指定

无法 HEAD 'https://repo1.maven.org/maven2/com/android/tools/build/gradle/1.5.0/gradle-1.5.0.pom'

要求:

对等体未通过身份验证

试试:

使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 运行 获得更多日志输出的选项。

构建失败

你知道如何解决我的问题吗?

【问题讨论】:

  • 您是否遵循建议(添加--stacktrace --debug)?
  • 看起来像是代理身份验证问题。在升级 cordova 之前您可能没有看到此问题的原因是,您的所有 dep 都在 gradle 缓存中,而 gradle 不再需要在线解决任何依赖关系。
  • 我尝试stackoverflow.com/questions/26675814/…,但没有帮助,@Rene 代理身份验证问题是什么意思?
  • 你在代理后面吗?

标签: android cordova gradle android-gradle-plugin


【解决方案1】:

我在proxy后面也遇到过类似的问题,一直无法让maven下载gradle,所以做了这个解决方案。

手动下载 gradle,将其放在文件夹项目的根目录中。

我的文件夹架构

1. Developer (folder)
  1.1 Projects (folder)
     1.1.1 project1 (folder)
     1.1.2 project2 (folder)
  1.2 gradle-2.2.1-all.zip (file)

然后我做了这个钩子,将gradeBuilder.js中的url覆盖到本地

#!/usr/bin/env node

//Hook to change the path to the gradle to find the local one, because the proxy doesn't allow
//to connect o an https server

var fs = require('fs');
var path = require('path');

var rootdir = ".",
  androidroot = rootdir + "/platforms/android";

function replace_string_in_file(filename, to_replace, replace_with) {
  var data = fs.readFileSync(filename, 'utf8');

  if(data.indexOf(replace_with) > -1){
    console.log('File already contains required text. Nothing to do.');
  } else {
    console.log(new RegExp(to_replace, "g"));
    var result = data.replace(new RegExp(to_replace, "g"), replace_with);
    //console.log(result);
    fs.writeFileSync(filename, result, 'utf8');
    console.log('Changed Build Gradle Path to local successfully');
  }
}

if(fs.existsSync(androidroot)){
  var targetFile = androidroot + '/cordova/lib/builders/GradleBuilder.js';
  try{

    replace_string_in_file(targetFile, 'http\\\\\\\\://services.gradle.org/distributions/gradle-2.2.1-all.zip', '../../../../../../gradle-2.2.1-all.zip');
  } catch(e){
    console.log("File " + targetFile + " modified successfully");
  }
}

并放在项目的hooks/before_build文件夹中。

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 2020-05-05
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多