最近打算学习cordova,然后按照cordova官网教程一步一步运行之后发现并不能成功.在这里我将自己遇到的问题以及解决办法记录下来,一个是方便自己以后复习,二个是希望能够帮助到遇到同样问题的同学们. 由于我使用的是windows 10,所以以下均为windows系统下的一下操作.
首先,先上一个cordova中文官网的地址cordova中文网.在这里我还要说一句,想要开发app,访问国外网站是必不可少的,后续的步骤以及解决办法大部分需要能够访问国外网站.工具的话我使用的是LD,你也可以选择自行搭建.
然后就是按照创建你的第一个App
指南来一步一步学习了.
安装Cordova CLI
C:>npm install -g cordova
这一步基本没有问题,自行安装就好.
创建App
$ cordova create hello com.example.hello HelloWorld
这一步也没问题.
添加平台
$ cd hello
$ cordova platform add ios --save
$ cordova platform add android --save
由于我是win系统,故上一步只添加了android平台,即只执行了$ cd hello
和$ cordova platform add android --save
.大家按照自己的情况选择添加.
安装构建先决条件
$ cordova requirements
这一步是确定是否可以运行对应平台,第一次使用cordova基本是都不满足的.所以需要安装对应需要的环境.安卓平台的要求.安卓平台的要求就是需要安装1.7以上的jdk以及安卓sdk.这部分自己按照.安卓平台的要求一步一步安装即可.基本问题都不大,唯一要注意的就是别忘了配置环境变量.如果环境变量正确配置了仍然无法执行对应命令行,例如javac
,一般是需要重启一下电脑让环境变量生效.
构建App
$ cordova build
这一步就比较关键了,构建刚刚创建的app.我在这一步开始不能够正常运行,花了一周的百度+谷歌才解决了这个问题.
这里主要是谷歌更改了maven地址,导致下载一直失败.刚刚我重试了一下发现此处已经不会报错,可能是第一次执行build才会下载,后续不需要再下载.具体解决方法直接放出来:
先找到
platforms/build.gradle
文件.
然后修改repositories配置(我两处都修改了)为以下配置:repositories { google() jcenter() }
再次运行$ cordova build
.第一次运行该命令需要下载很多东西,所以要确保网络通畅(如果失败就多运行几次),等到命令行出现项目路径时就ok了.
测试App
$ cordova emulate android
这一步我又出错了…TypeError: Cannot read property 'semver' of null
.这个错误就比较好解决了,stackoverflow有几个大神已经解决了这个问题Cordova android emulation - Error: Cannot read property ‘semver’ of null
.我选择的是第三位的解决方法(看起来最简单),下面直接复制该大神的答案:
- find the path <project_root>/platforms/android/cordova/lib/emulator.js
- find the line avd.target = 'Android ’ + level.semver + ’ (API level ’ + api_level + ‘)’;
- replace it with avd.target = 'Android ’ + (level ? level.semver : ‘’) + ’ (API level ’ + api_level + ‘)’;
然后你的第一个app就能够在模拟器上运行了.