趁元旦放假想试一下cordova,不想安装庞大的android studio,所以想最小化安装,居然花了一整天的时间才能正常编译cordova工程,记录一下过程,备将来参考。
安装环境:操作系统:windows 10 x64
第一步:安装nodejs,下载最新版本v10.15.0
第二步:设置npm安装源
npm config set registry http://registry.npm.taobao.org/
查看是否正确设置
npm config get registry
第三步:安装cordova
npm install - g cordova
安装完成后在命令行中执行 cordova -v 可以看到cordova的版本,当前安装的版本为【8.1.2 (cordova-lib@8.1.1)】
第四步:安装JAVA SDK(以下的步骤都是了为支持android开发)
需要下载和安装1.8及之后的版本,这里使用的是jdk-8u191-windows-x64.exe
安装后设置环境变量
JAVA_HOME C:\Program Files\Java\jdk1.8.0_191
CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
在Path中增加 %JAVA_HOME%\jre\bin 和 %JAVA_HOME%\bin
第五步:安装android SDK
现在有了developers.google.cn,不用FQ了,访问网址 https://developer.android.google.cn/studio/
不要下载android studio ,找到下方的“仅限命令行工具”,下载器其中的 sdk-tools-windows-4333796.zip
下载之后将内容加压到D:\Android\Android-SDK目录,其实就一个tools文件夹,bin下有sdkmanager.bat文件用户安装SDK,具体使用可以看 https://developer.android.google.cn/studio/command-line/sdkmanager
设置环境变量,增加ANDROID_HOME,内容为D:\Android\Android-SDK,在Path中增加%ANDROID_HOME%\tools\bin和%ANDROID_HOME%\tools
然后打开命令行,进入D:\Android\Android-SDK目录,运行以下命令,安装platfrom-tools,build-tools和安卓API
sdkmanager "platform-tools" "platforms;android-27"
sdkmanager "build-tools;27.0.0"
第六步:安装gradle
从https://services.gradle.org/distributions/gradle-4.1-bin.zip,下载zip文件,解压到C:\Gradle\gradle-4.1,然后将C:\Gradle\gradle-4.1\bin加入到Path环境变量
第七步:创建和编译cordova项目
打开命令行,执行 cordova create firstapp,创建一个工程,目录名为firstapp
进入firstapp目录,执行 cordova platform add android,增加安卓平台支持,版本为android@7.1.4,安卓的目标版本为android-27
执行 cordova requirements可以查看本工程的依赖项(JDK、androidsdk、gradle、android-target都已经安装)
执行cordova build android,会看到会试图下载https://services.gradle.org/distributions/gradle-4.1-all.zip,但是速度特别慢,几乎不动,Ctrl+C中断,利用迅雷下载该zip包(几乎满速下载),下载这个zip包的过程每个工程第一次编译时都会执行。
可使用两种方法解决:
1)我本机有nginx,将下载好的zip包放到nginx发布目录,用环境变量指定zip包的下载地址,在执行build命令之前先执行:
set CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=http://localhost/distributions/gradle-4.1-all.zip
这样就能够快速下载文件并安装了,解压的过程也要花些时间。
2)在下载zip包时ctrl+c中断,在资源管理器中打开C:\Users\【名户名】\.gradle\wrapper\dists\gradle-4.1-all,在其中每个cordova对应一个子目录,子目录是编译时自动生成的,可以根据目录创建时间确定哪个是当前工程的,我的是bzyivzo6n839fup2jbap0tjew,将这个子目录下的文件全部删除,将下载好到gradle-4.1-all.zip复制到该子目录,不用解压。然后重新build即可。
这个问题解决后再次执行cordova build android,还会下载若干.pom文件和.jar文件,这些文件都比较小,下载速度比较快,只要在编译第一个工程时下载了,以后的工程编译时就不会重新下载了。我在安装时到了这一步,经常卡在某个文件不动,于是反复执行ctrl+c,重新build,多次之后下载成功,随之编译成功,生成apk文件。