一吼渡、環(huán)境
@ionic/cli@6.19.1
cordova@11.0.0
gradle-4.6
Android SDK@29.0.2
Java SDK@1.8.0_361
nodejs@16.18.1
二、下載SDK乓序、配置環(huán)境變量
1寺酪、下載gradle-4.6
下載不了的話(huà) 百度找下國(guó)內(nèi)鏡像下載;
配置系統(tǒng)環(huán)境變量:
GRADLE_HOME
:D:\gradle-4.10.3\bin
2替劈、Android SDK
我是用Android Studio
下載的
注意本地有多個(gè)SDK版本的情況寄雀,可能不兼容;
配置環(huán)境變量:
ANDROID_HOME
陨献、ANDROID_SDK_ROOT
盒犹,兩者值一樣,填自己本地路徑眨业,C:\Users\你電腦的用戶(hù)名\AppData\Local\Android\Sdk
3急膀、安裝java8
并配置環(huán)境變量
JAVA_HOME
:D:\jdk1.8.0_361\bin
CLASSPATH
:%JAVA_HOME%\lib
4、然后path
也添加一下
%JAVA_HOME%
%GRADLE_HOME%
%ANDROID_SDK_ROOT%
三龄捡、安裝項(xiàng)目依賴(lài)
cnpm i
或者yarn
npm i -g cordova@11.0.0 @ionic/cli@6.19.1
四卓嫂、構(gòu)建安卓工程
ionic cordova prepare android
如果沒(méi)添加過(guò)安卓工程,控制臺(tái)提示add增加聘殖,輸入y
回車(chē)即可
構(gòu)建時(shí)如遇插件缺失
Failed to restore plugin xxx
晨雳,則安裝對(duì)應(yīng)插件cordova plugin add xxx
,像極光推送jpush-phonegap-plugin
還需要加上key
:cordova plugin add jpush-phonegap-plugin --variable APP_KEY=xxx
五奸腺、打包安卓apk
1餐禁、默認(rèn)打包debug
版本
ionic cordova build android
2、打包正式版
ionic cordova build android --release
3洋机、build
時(shí)下載gradle
超時(shí)解決方案
安卓工程platforms\android
搜索:
services.gradle.org/distributions/gradle
坠宴;
搜索結(jié)果例如:https\://services.gradle.org/distributions/gradle-4.6-all.zip
;
替換為本地地址(下載到本地):
file\:///D:/gradle/gradle-4.6-all.zip
4绷旗、遠(yuǎn)程Maven
倉(cāng)庫(kù)文件下載超時(shí)(要上梯)
改為阿里云云效Maven
;
文件位置:platforms\android\build.gradle
或者repositories.gradle
副砍;
按需添加google
衔肢、jcenter
等,有特殊的如mpaas
還需要賬號(hào)密碼豁翎;
maven {
url 'https://maven.aliyun.com/repository/google/'
}
maven {
url 'https://maven.aliyun.com/repository/public/'
}
5角骤、記得build
之前要改好gradle
和Maven
配置
6、程序包com.example.chenyu
不存在 程序包R
不存在
用到百度地圖才做,報(bào)錯(cuò):SerialLocation.java:17: 錯(cuò)誤: 程序包c(diǎn)om.example.chenyu不存在 程序包R不存在
修改包名:
全局搜索com.example.chenyu
替換為自己APP
的包名
我這里的文件位置:platforms\android\app\src\main\java\com\chenyu\GaoDeLocation\SerialLocation.java
17行的:import com.example.chenyu.R;
7邦尊、打包生產(chǎn)報(bào)錯(cuò)
ERROR in : Cannot determine the module for class AutotrophyContractPage in D:/project/arrow_epms/src/app/pages/project/autotrophy-contract/autotrophy-contract.page.ts! Add AutotrophyContractPage to the
NgModule to fix it.
意思是AutotrophyContractPage
組件沒(méi)有注冊(cè)到NgModule
;
- 配置到對(duì)應(yīng)
xxx.module.ts
里面背桐; - 如果改頁(yè)面沒(méi)用了就移除了重新
build
;
8蝉揍、apk
位置
D:\project\arrow_epms\platforms\android\app\build\outputs\apk\
六链峭、簽名
使用jarsigner
給打包出來(lái)的apk
簽名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 證書(shū)路徑 app-release.apk 別名
例如:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myapp.keystore app-release.apk myapp_alias
至此apk
就打包好了!