[TOC]
1、装置cordova
平台: Windows10
必须环境: node/ JDK / Adroid SDK / Gradle 不要忘了配置他俩的环境变量
- 全局装置cordova
npm install -g cordova
1、创立cordova我的项目,导入vue
创立
cordova create firstApp
增加安卓平台反对
cordova platform add android
查看本工程的依赖项是否装置好 JDK,Android SDK,gradle, android-target
cordova requirements
导入vue
- 为了不便,能够间接批改vue.config.js的打包门路到,cordova我的项目的www目录下。就好了
vue.config.js 批改outputDir到你本人cordova我的项目的门路
module.exports = { outputDir: '../cordova/www', publicPath: './',
- 打包后。剩下的,就交给cordova去做了
2、导入各种插件
须要啥插啥
比方 微信的 cordova plugin add cordova-plugin-wechat --variable wechatappid=xxxx
等一系列,可去官网看
3.config.xml的配置
==config.xml==的配置有很多,自行查找,说几个跟打包APK,微信登录相干的
id属性,就是安卓程序包名,未来在微信开发平台上须要用到
<widget id="com.xxxxxxxx.h5app" ios-CFBundleIdentifier="xxxxx" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name></name> <description> </description> </author>
3、调试与打包成APK
3.1 生成调试的APK
cordova run android
==接下来,你能够抉择打包==
打包成未签名的APK
cordova build android --release
造个证书
keytool -genkeypair -alias 别名 -keyalg RSA -validity 20000 -keystore aaaaa.keystore
给apk签名
jarsigner -verbose -keystore aaaaa.keystore -signedjar aaaa.apk aaaa-unsigned.apk 别名
jarsigner -verbose -keystore [签名文件门路] -signedjar [签名后的apk文件门路] [未签名的apk文件门路] [证书别名]参数阐明:-verbose 签名时输入详细信息,便于查看签名后果-keystore 指定签名文件的寄存门路-signedjar 指定签名后的apk文件寄存门路
签完名,没完,微信登录的话须要去微信开发平台绑定 程序包名,和签名
Android平台利用下载地址:未填写利用签名:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx包名:com.xxxxxxxxxxxxxx.h5app
5、问题汇总
5.1 cordova run android 时候 gradle的报错
FAILURE: Build failed with an exception. 失败:构建失败,并出现异常。
- Where:
Initialization script 'F:\gradle-7.0\init.d\init.gradle' line: 1- What went wrong:
Could not compile initialization script 'F:\gradle-7.0\init.d\init.gradle'.startup failed:
initialization script 'F:\gradle-7.0\init.d\init.gradle': 1: Unexpected input: '{' @ line 1, column 13.allprojects {
问题呈现的违心,我在装置并配置gradle的时候,在网上轻易找的教程, maven { url 'file:///C:/Java/maven_repository'} 门路这个中央斜杠写成反斜杠了。语法错误编译不过。淦,改了就好了
allprojects { repositories { maven { url 'file:///C:/Java/maven_repository'} mavenLocal() maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" } maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" } mavenCentral() } buildscript { repositories { maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' } maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' } maven { name "M2" ; url 'https://plugins.gradle.org/m2/' } } }}
5.2 安卓版本过高,报错 net::ERR_CLEARTEXT_NOT_PERMITTED
- 从Android 9.0(API级别28)开始,默认状况下禁用明文反对。因而http的url均无奈在webview中加载,我这里选的是安卓9,API29,所以不能拜访。
解决办法,批改设置,开启明文反对
文件 platforms\android\app\src\main\AndroidManifest.xml,增加 android:hardwareAccelerated="true"
<application android:hardwareAccelerated="true"> ........................................</application>