首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cordova构建更改gradle-wrapper.properties文件中的distributionUrl

Cordova构建更改gradle-wrapper.properties文件中的distributionUrl
EN

Stack Overflow用户
提问于 2016-05-09 21:08:52
回答 9查看 41.6K关注 0票数 46

运行时,我一直会得到以下生成异常

代码语言:javascript
运行
复制
 cordova run android --verbose
  • 问题出在哪里:一个评估根项目'android‘的问题发生了。无法应用插件id 'android‘Gradle版本2.10是必需的。当前版本为2.2.1。如果使用gradle包装器,请尝试将C:\Users\Project\gradle\wrapper\gradle-wrapper.properties中的distributionUrl编辑为gradle-2.10-all.zip

其原因是,当我运行cordova build命令时,行正在更改;

代码语言:javascript
运行
复制
distributionUrl=http\://services.gradle.org/distributions/gradle-2.1.0-all.zip

代码语言:javascript
运行
复制
distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip

有什么办法防止这种情况发生吗?

EN

Stack Overflow用户

发布于 2017-05-21 18:44:32

更新:2017年5月21日

好吧,这是一个非常讨厌的问题,我觉得我不得不写完整的指令来修正,希望它能节省别人我在上面浪费的时间。下面是谷歌搜索、阅读公认的答案以及从尝试和错误中解决问题的结合。

在你做其他事情之前..。如果Docker正在运行,请确保关闭它。症状之一是在Android中,模拟器加载对话框就会悄然消失。如果您从app start命令运行,那么您的应用程序就只能等待连接到设备(消息发布)。

假设你已经这样做了,但仍然没有工作,继续读下去。

可选(可能):仅限于fyi -就我个人而言,我使用SDK Man在我的机器上安装了一个匹配的Gradle版本。

假设您已经有了一个可以工作的Android仿真器,可以使用Marshmallow或Nougat (或者两者兼有)。

就我而言,我当时正试图让科多瓦去工作。

根据你是否想重新开始(建议),然后:

代码语言:javascript
运行
复制
cordova platform rm android
cordova platform add android

First需要下载。根据您的操作系统下载以下内容:

r25.2.3-windows.zip

r25.2.5-linux.zip

(我在Mac上运行,所以下载了:)

r25.2.5-macosx.zip

解压缩,并将templates文件夹复制到/Users/arcseldon/Library/Android/sdk/tools

Explanation:查看module.exports.check_gradle函数中的逻辑,该函数在platforms/android/cordova/check_reqs.js下声明,以了解它如何尝试派生gradle包装器的路径。这件事是共同的。

代码语言:javascript
运行
复制
$ echo $ANDROID_HOME
/Users/arcseldon/Library/Android/sdk

我可以看到一个tools子目录,但里面没有templates文件夹。因此,从下载并解压的zip中复制templates文件夹,并将其粘贴到$ANDROID_HOME/tools中。

您应该以一个路径层次结构结束,该层次结构包括:

代码语言:javascript
运行
复制
/Users/arcseldon/Library/Android/sdk/tools/templates/gradle/wrapper 

从脚本的角度来看,这现在满足了路径搜索。

其次,查看您的cordova应用程序中的平台/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.zip https://services.gradle.org/distributions/gradle-2.4-all.zip

然后,一旦下载,放置在您的本地驱动器和引用ENV。变量。例如:(更改为您的版本)

代码语言:javascript
运行
复制
export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=file:///Users/myusername/temp/gradle-2.14.1-all.zip

Explanation:,如果您运行搜索,您会发现这个环境变量是这个env的可选覆盖。变量。参见check_gradle的变量赋值,在platforms/android/cordova/lib/builders/GradleBuilder.js下声明

现在就跑吧:

代码语言:javascript
运行
复制
cordova run android --verbose

一切都进行得很顺利,现在一切都应该对Android“起作用”了。在我的例子中,iOS是开箱即用的--但出于其他原因,我确实使用了Xcode 8.2而不是Xcode 8.3。

票数 13
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37125496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档