PhoneGap构建停滞求助:执行cordova run android时卡在依赖下载环节
解决Cordova构建Android时卡在nekohtml依赖下载的问题
嘿,刚接触PhoneGap/Cordova和原生开发就碰到这种卡下载的情况确实挺闹心的,我来给你一步步梳理解决方案:
第一步:处理当前卡住的进程
完全可以终止当前的cordova/npm进程,这不会对已下载的文件造成任何损坏——后续重启构建时,Gradle会自动识别已经下载好的依赖,接着完成剩下的部分,不用怕之前的努力白费。
第二步:解决依赖下载慢的核心问题
卡住的本质是jcenter仓库在国内访问不稳定,换用国内的Gradle镜像源是最有效的解决办法,分两种场景:
方法1:修改当前项目的Gradle配置(仅对当前项目生效)
- 打开你的Cordova项目,找到
platforms/android目录下的根级build.gradle文件(注意不是app子文件夹里的那个) - 找到文件中的
repositories代码块,将国内镜像(比如阿里云)放在最前面,替换或后置jcenter:
repositories { maven { url 'https://maven.aliyun.com/repository/public' } mavenCentral() // 可注释或后置原jcenter,优先走国内源 // jcenter() }
- 同时检查
platforms/android/app/build.gradle文件中的repositories块,做同样的修改
方法2:配置全局Gradle镜像(所有项目通用)
这个方法一劳永逸,以后其他Cordova/Android项目都不用重复改配置:
- 找到你的用户目录下的
.gradle文件夹:- Windows:
C:\Users\你的用户名\.gradle - Mac/Linux:
~/.gradle
- Windows:
- 在该文件夹下新建
init.gradle文件,写入以下内容:
allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/public' } mavenCentral() jcenter() // 若仍需依赖jcenter可保留,但放最后优先级最低 } }
第三步:手动下载依赖(备用方案)
如果换镜像后还是卡住,可以手动下载缺失的jar包放到Gradle缓存里:
- 手动下载
nekohtml-1.9.6.2.jar - 找到Gradle缓存路径:
~/.gradle/caches/modules-2/files-2.1/nekohtml/nekohtml/1.9.6.2/(后面会有一个哈希值命名的文件夹) - 将下载好的jar包放入该文件夹,替换已存在的不完整文件
第四步:重启构建
终止原有进程后,重新运行cordova run android,应该就能顺利完成构建了。
如果还是遇到问题,可以尝试清理Gradle缓存(删除.gradle/caches文件夹)后再重新构建,一般都能解决这类依赖下载的问题。
内容的提问来源于stack exchange,提问作者Basit
相关产品推荐
相关产品推荐

