我在运行时不断收到以下生成异常
cordova run android --verbose
- 问题:评估根项目'android'时发生问题。
无法应用插件[id 'android']需要Gradle版本2.10。当前版本为2.2.1。如果使用Gradle Package 器,请尝试将C:\Users\Project\gradle\wrapper\gradle-wrapper. properties中的分发URL编辑为gradle-2.10-all.zip
原因是当我从运行cordova build命令时,该行被更改;
distributionUrl=http\://services.gradle.org/distributions/gradle-2.1.0-all.zip
至
distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip
有什么办法可以阻止吗?
9条答案
按热度按时间x6h2sr281#
可以猜到,当您发出“Cordova build android”命令时,有一个脚本正在后台运行。需要找到该脚本才能看到为Gradle版本指定的配置。
您必须检查以下js文件:
$PROJECT_ROOT/platforms/android/cordova/lib/builders/GradleBuilder.js
然后在文件中查找包含以下变量的行:
并检查distributionUrl变量:
这就是您要查找的内容,您需要将其更改为gradle-2.10-all.zip URL;
现在您可以运行build命令了,就这样!
受以下SO启发; install gradle for using in cordova build android
btqmn9zl2#
我认为最好导出变量
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL
示例:
例如,如果您使用的是Mac,请将中的export命令添加到
.bash_profile
fxnxkyjh3#
更新日期:2017年5月21日
好吧,这是一个非常棘手的问题,我觉得必须写完整的说明来解决,希望它能节省别人我浪费在它上面的时间。下面是谷歌搜索,阅读公认的答案,并从试验和错误中解决问题的组合。
在执行其他操作之前,请确保关闭Docker(如果它正在运行)。一个症状是,在Android Studio中,模拟器加载对话框只是无声地消失。如果您从应用启动命令运行,您的应用只是等待连接到设备(发出消息)。
假设您已经这样做了,但仍然没有工作,请继续阅读。
可选(可能):仅供参考-就我个人而言,我使用SDK Man在我的机器上安装了匹配版本的Gradle。
假设您已经有了一个运行正常的Android Studio模拟器,其中包含棉花糖或牛轧糖(或两者)。
在我的情况下,我当时试图让 cordova 工作。
根据您是否希望重新开始(推荐),然后:
首先需要下载。根据您的操作系统下载以下内容:
https://dl.google.com/android/repository/tools_r25.2.3-windows.zip
https://dl.google.com/android/repository/tools_r25.2.5-linux.zip
(我在Mac上运行,所以下载了:)
https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip
将其解压缩,然后将
templates
文件夹复制到/Users/arcseldon/Library/Android/sdk/tools
中**说明:**请查看
platforms/android/cordova/check_reqs.js
下声明的module.exports.check_gradle
函数内部的逻辑,以了解它如何尝试派生gradle Package 器的路径。我可以看到一个
tools
子目录,但其中没有templates
文件夹。因此,从下载并解压缩的zip文件中复制templates
文件夹,并将其粘贴到$ANDROID_HOME/tools
中最后,您应该创建一个路径层次结构,其中包括:
现在,这满足了从脚本Angular 进行路径搜索的要求。
其次,检查您的cordova应用程序是否存在platforms/android/build.gradle,并搜索
gradleVersion
。task wrapper(type: Wrapper) { gradleVersion = '2.14.1' }
对于您的版本,请从以下URL下载:
https://services.gradle.org/distributions/gradle-X.Y.Z-all.zip
根据需要替换X、Y、Z以匹配您的版本。
就我而言,
https://services.gradle.org/distributions/gradle-2.14.1-all.zip
其它例子:
https://services.gradle.org/distributions/gradle-3.3-all.ziphttps://services.gradle.org/distributions/gradle-2.4-all.zip打印机
然后,下载完成后,将其放置在本地驱动器上,并使用ENV. variable.例如(更改为您的版本)进行引用
**解释:**如果运行搜索,您会发现此环境变量是此环境变量得可选替代.请参阅
platforms/android/cordova/lib/builders/GradleBuilder.js
下声明得check_gradle
得变量赋值现在只需运行:
一切顺利,现在一切都应该“只为Android工作”。在我的情况下,iOS是开箱即用的-但我确实使用Xcode 8. 2而不是Xcode 8. 3是出于其他原因。
tpgth1q74#
这发生在我们身上,因为我们不小心让Android Studio构建了我们的 cordova 项目,导致了无尽的错误。
保存您能够:
9rygscc15#
内部平台
在第232行周围,您将看到:
变量分布URL =进程.env ['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL']||在此基础上,提出了一种新的基于Web的分布式计算方法。
根据你的需要调整梯度。
范例:var distributionUrl =行程程序.env ['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL']||在此基础上,提出了一种新的基于Web的分布式计算方法。
r6hnlfcb6#
您可以尝试以下方法来解决此问题,
在Windows上,更改
File -> Settings -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home
路径在Mac OS上,更改
Android Studio -> Preferences -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home
路径否则,使用默认的gradle Package 器并按如下方式编辑
Project\gradle\wrapper\gradle-wrapper.properties file's distributionUrl
:798qvoo87#
这是发生在我身上,因为我不是用最新版本的cordova-android构建。所以:
不要使用
@latest
指令。另外,请确保更新并下载最新版本的gradle,并将其包含在相应的目录中,如其他答案中所指出的。cqoc49vn8#
请检查环境变量。
我的电脑〉属性〉系统属性〉高级〉环境变量...〉在“系统变量”下找到以下设置,并尝试根据您的Gradle版本进行更改。
只需保存设置并重新打开命令窗口。然后尝试重新生成。
jaql4c8m9#
尝试打开文件project/platforms/android/build.gradle并进行更新
相关性{
类别路径'com.android.tools.build:gradle:X.X.X'
}
和
任务 Package (类型: Package ){
升级版本= 'X.X'
}
请参阅此处的参考资料https://developer.android.com/studio/releases/gradle-plugin.html#updating-gradle
更改X.X