安装:
npm install -g cordova
本文对应版本:9.0.0 (cordova-lib@9.0.1)
1.需要配置的变量
#export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export NODE_HOME=/opt/nodejs/latest
export NODE_PATH=$NODE_HOME/lib/node_modules
export ANDROID_SDK_ROOT=/opt/Android/SDK/
export ANDROID_HOME=/opt/Android/SDK/
export PATH=$NODE_HOME/bin:$JAVA_HOME/bin:$PATH
2. cordova 默认使用jdk 1.8
改为11后,会报版本错误.注释掉这段检查代码,会报null pointer错误.预估是因为jdk11 remove 了一些包.
简单的办法是安装jdk 8,复杂的办法是倒入缺乏的包.
如需修改jdk版本,搜索:
JavaVersion.VERSION_1_8 替换之.
3. cordova 使用的android sdk最低版本为27.0.3
而ubuntu 仓库自带的sdk最新为27.0.1, 只有手动下载了.
请参考 食用Android SDK的正确姿势之2020更新
4. 配置路径
- ./platform/android/local.properties
sdk.dir=****
这是环境变量的被选方案
- build.extras.gradle
ext.cdvMinSdkVersion = 28
ext.cdvCompileVersion = 28
ext.cdvBuildToolsVersion=28.0.3
这个配置文件需要新建,配置sdk版本
- build.gradle
buildscript {
repositories {
// google()
// jcenter()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
}
dependencies {
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.android.tools.build:gradle:3.1.0' //对应 gradle 4.4.x ==> plugin 3.1.x -----------!
}
}
allprojects {
repositories {
// google()
// jcenter()
//为了科学的做马农-----------!
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
}
//This replaces project.properties w.r.t. build settings
project.ext {
defaultBuildToolsVersion="28.0.3" //String 这是安卓build工具版本-----------!
defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default 目标版本-----------!
defaultCompileSdkVersion=28 //Integer - We ALWAYS compile with the latest by default
}
}
- project.properties
#project target.
target=android-28 #这里还有sdk版本
android.library.reference.1=CordovaLib
android.library.reference.2=app
就写这些吧.