cordova 安装配置 及遇到的问题解决

1,需要先安装node.js  
下载地址:https://nodejs.org/en/  
默认安装目录:C:\Program Files\nodejs

 

2,cmd下运行命令 npm install -g cordova (如果安装出错 就是网络连接失败 因为是国外网 需要 网络代理软件  这里我用的软件是  proxy999 

 

 安装完后 运行cordova  运行成功说明安装成功  找不到命令 说明安装失败


默认安装目录:C:\Users\Administrator\AppData\Roaming\npm\node_modules\cordova\bin


3, 安装ANT  这里我安装的版本是apache-ant-1.9.6-bin 去官网下载 解析后 配置ANT_HOME和 PATH


4,执行cordova命令 创建 项目
使用:cordova create hello com.example.hello HelloWorld这个指令创建一个名为hello的项目,包名为com.example.hello
创建时需要下载cordova类库,网络不行时可能需要耐心等待会


第三步:添加各个平台
view sourceprint?
01.
 cd hello
02.
 cordova platform add ios
03.
 cordova platform add amazon-fireos
04.
 cordova platform add android
05.
 cordova platform add blackberry10
06.
 cordova platform add firefoxos
07.
 cordova platform add wp8
08.
 cordova platform add windows8
09.
 cordova platform add amazon-fireos
10.
 cordova platform add android
11.
 cordova platform add blackberry


编译项目   cordova build




遇到的问题1
如果一直在下载  gradle-2.2.1-all 这到
http://services.gradle.org/distributions/gradle-2.2.1-all.zip 
下载压缩包 并解压到 cmd运行时要下载的目录里 
我当时的目录时   C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.2.1-all\2m8005s69iu8v0oiejfej094b




遇到的最后一个问题2  报错如下
* Where:
Script 'E:\workcordova\hello\platforms\android\CordovaLib\cordova.gradle' line:
57


* What went wrong:
A problem occurred evaluating root project 'android'.
> No usable Android build tools found. Highest installed version is 4.4; minimum
 version required is 19.1.0.
 

解决方法  

 

解决方法:把android 的sdk目录\build-tools里的文件夹改成小数就好了,如把android-22改成22(在sdk几个文件夹下,android-22是常见的目录名称,所以不会留意到这个原因导致异常)

至于解决过程有兴趣继续往下看:

这段异常提示来自哪里呢?

它在CordovaLib/cordova.gradle文件里面(源文件64行,这片段的27行):

 

[javascript]  view plain copy
 
  1. String[] getAvailableBuildTools() {  
  2.     def buildToolsDir = new File(getAndroidSdkDir(), "build-tools")  
  3.     buildToolsDir.list()  
  4.         .findAll { it ==~ /[0-9.]+/ }  
  5.         .sort { a, b -> compareVersions(b, a) }  
  6. }  
  7.   
  8. String doFindLatestInstalledBuildTools(String minBuildToolsVersion) {  
  9.     def availableBuildToolsVersions  
  10.     try {  
  11.         availableBuildToolsVersions = getAvailableBuildTools()  
  12.     } catch (e) {  
  13.         println "An exception occurred while trying to find the Android build tools."  
  14.         throw e  
  15.     }  
  16.     if (availableBuildToolsVersions.length > 0) {  
  17.         def highestBuildToolsVersion = availableBuildToolsVersions[0]  
  18.         if (compareVersions(highestBuildToolsVersion, minBuildToolsVersion) < 0) {  
  19.             throw new RuntimeException(  
  20.                 "No usable Android build tools found. Highest installed version is " +  
  21.                 highestBuildToolsVersion + "; minimum version required is " +  
  22.                 minBuildToolsVersion + ".")  
  23.         }  
  24.         highestBuildToolsVersion  
  25.     } else {  
  26.         throw new RuntimeException(  
  27.             "No installed build tools found. Please install the Android build tools version " +  
  28.             minBuildToolsVersion + " or higher.")  
  29.     }  
  30. }  


这是Groovy语言,看代码,要提示这个异常,要达到下面条件:

[javascript]  view plain copy
 
  1. availableBuildToolsVersions.length<=0  

 

而这个变量来自函数getAvailableBuildTools(),函数意思是获取可用目录,看这个函数的实现,它是在androd的SDK目录/build-tools下查找所有文件夹,然后通过一个findAll正则表达式匹配:

 

[javascript]  view plain copy
 
  1. findAll { it ==~ /[0-9.]+/ }  

其中==~:用法跟=~类似,只是特指精确匹配,及左边的和右边的模式进行匹配。而右边的正则表达式意思是(0到9和.号的组合)的1到多个,也就是说没有字母和其它字符,于是答案就揭晓了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java)