2018-12-09

1.基本依賴環(huán)境

nodejs環(huán)境 (作為一個(gè)前端相信你已經(jīng)有了)?



最好提前配置好node的環(huán)境變量盾碗,便于全局訪問(wèn)章咧。

jdk(java的開發(fā)基礎(chǔ)類庫(kù)验靡,因?yàn)?android )?

SDK(安卓開發(fā)集成包劲弦,集成了安卓的開發(fā)工具耳标,插件,API等等)?

gradle( JAVA界的Weboack 邑跪,支撐app的編譯次坡,打包的流程)

2. 基本工具

gitbash(就是用來(lái)替代windows自帶的丑陋的CMD)

下載:我都打包了!

鏈接:https://pan.baidu.com/s/1mje7ZHu 密碼:ob6m

windows自帶的CMD(window+R輸入CMD画畅,管理員身份運(yùn)行)

VSCode(微軟爸爸開發(fā)的前端IDE)

下載:請(qǐng)自行去微軟爸爸官網(wǎng)下載砸琅。

3.環(huán)境配置

3.1 nodejs (需要配置環(huán)境變量)

前端必會(huì),跳過(guò)轴踱。

不會(huì)的去這里看傻瓜教程:http://www.reibang.com/p/03a76b2e7e00

3.2 jdk (無(wú)需配置環(huán)境變量)

下載:已經(jīng)上傳網(wǎng)盤↓

鏈接:https://pan.baidu.com/s/1mje7ZHu 密碼:ob6m

請(qǐng)自行根據(jù)系統(tǒng)安裝32/64位的版本症脂。

安裝方法:下載完成,解壓,直接按照提示安裝诱篷,全局點(diǎn)確定壶唤,不出意外,最后的安裝路徑為:C:\Program Files\Java

OK棕所,jdk安裝完成闸盔,在cmd中,輸入$ java -version驗(yàn)證是否安裝成功琳省。

OK迎吵。

3.3 sdk (需要配置環(huán)境變量)

下載:跟上面的一樣,我都打包了针贬。

鏈接:https://pan.baidu.com/s/1mje7ZHu 密碼:ob6m

解壓后(直接右鍵X解壓并重命名击费。因?yàn)槊孢€有個(gè)文件夾,不建議用右鍵+E解壓)桦他。

將重命名的文件夾蔫巩,跟jdk放在一個(gè)父目錄,便于查找:C:\Program Files\SDK

接著配置環(huán)境變量瞬铸,我的電腦——右鍵屬性——-高級(jí)系統(tǒng)設(shè)置——-環(huán)境變量批幌。

在下面的系統(tǒng)變量(s)中础锐,新建嗓节,鍵值對(duì)如下:

name: ANDROID_HOME

key: C:\Program Files\SDK

如圖所示:

然后在path中,全局聲明一下皆警,將 ;%ANDROID_HOME%\tools 綴在最后面拦宣,前面有【;】分隔符。(注:win 10 系統(tǒng)不需要封號(hào)信姓,SDK鸵隧,JDK也是同理)。

然后運(yùn)行CMD意推,輸入$ android -h豆瘫,如果出現(xiàn)一大堆指令,說(shuō)明你的SDK安裝無(wú)誤菊值,并且環(huán)境變量配置OK外驱。

現(xiàn)在,打開SDK目錄下的SDK Manager.exe

打開界面上的Tools,選擇options腻窒,先配置國(guó)內(nèi)鏡像:

域名千萬(wàn)不要輸入http或者h(yuǎn)ttps協(xié)議前綴昵宇,誰(shuí)輸誰(shuí)哭。

下面記得勾選儿子。

回到主界面瓦哎,點(diǎn)packages再點(diǎn)reload

先勾選如下圖的三個(gè)Tools:

分別是[ Android SDK Tools,Android SDK platform-tools,Android SDK Build-tools]

別急,還沒(méi)完,下面還有一個(gè):

[SDK platform]

全部選中后蒋譬,點(diǎn)右下角 install packages 來(lái)安裝割岛,耐心等待即可。

3.4 gradle安裝(需要配置環(huán)境變量)

打開:http://services.gradle.org/distributions/

下載:gradle-4.1-bin.zip

同樣安裝在JDK,SDK的目錄下犯助,便于查找蜂桶。

同樣的配置環(huán)境變量:

GRADLE_HOME=C:\Program Files\SDK\gradle-4.1

;%GRADLE_HOME%\bin

測(cè)試命令(查看版本):gradle -v

3.基本流程

1.安裝ionic和cordova

打開Gitbash,全局安裝ionic和cordova(IONIC是UI,cordova負(fù)責(zé)打包成apk,并且可以調(diào)用原生安卓的各種API)

$ cnpm install -g ionic cordova

1

[ 2018/8/1 17點(diǎn)58分 加更 ]

驗(yàn)證 ionic 是否安裝成功

IONIC更新到 v4 了也切,后續(xù)我會(huì)體驗(yàn)一下扑媚,寫一篇新博客~

2.創(chuàng)建ionic項(xiàng)目

桌面右鍵,在此處gitbash

$ ionic start app tabs

1

耐心等待完成雷恃,在 cd 到 app 子目錄(app是你的真實(shí)項(xiàng)目目錄)疆股,然后

$ ionic serve

1

稍等片刻,瀏覽器自動(dòng)彈出預(yù)覽界面(建議電腦安裝Chrome瀏覽器)倒槐,并且支持持續(xù)熱更新(Webpack的功能)旬痹,如下圖所示:

如果做到這一步?jīng)]問(wèn)題,說(shuō)明:

1.nodejs與gitbash沒(méi)有問(wèn)題讨越。

2.ionic和cordova沒(méi)有問(wèn)題两残。

4.打包

確保SDK,JDK沒(méi)問(wèn)題以后,使用指令

$ ionic cordova build android --release

1

(如果這條命令有問(wèn)題把跨,可以去掉–release然后debug編譯人弓,編譯完成Dos會(huì)顯示apk目錄位置)

如若你聰慧的雙眼發(fā)現(xiàn)如下字眼:Build Success! 說(shuō)明你已經(jīng)成功打包了。耐心等待着逐,命令行結(jié)束會(huì)提示你apk的生成位置崔赌,如圖所示:

OK,此時(shí)你已經(jīng)有了debug的包耸别,但是這個(gè)包沒(méi)有簽名健芭,不能發(fā)布。

此時(shí)秀姐,我們應(yīng)該:

在JDK目錄下的bin文件夾下(C:\Program Files\Java\jdk1.8.0_71\bin)慈迈,先看看有沒(méi)有keytool.exe和jarsigner.exe文件,這兩個(gè)程序用于給APK簽名省有,簽名以后即可發(fā)布痒留。

.將Ionic生成的文件先命名為app.apk,然后復(fù)制一份當(dāng)前的bin目錄里锥咸,執(zhí)行命令1狭瞎,生成自己的簽名文件,名為:zhangqiang.keystrore搏予,別名也是這個(gè)熊锭,有效期20000天,僅僅在第一次生成簽名文件,以后不需要碗殷。

執(zhí)行完命令1精绎,繼續(xù)執(zhí)行命令2即可完成簽名打包。

命令1:生成簽名密鑰

/*

使用工具, 簽名:

-genkey表示構(gòu)建簽名文件

-v 顯示在dos窗口中

-alias表示簽名包的別名

-validity 簽名有效期(天)

姓名:填上锌妻,用你名字拼音全拼

城市:隨便填代乃,不填也行

國(guó)家: 隨便填,不填也行

密碼口令:敲的時(shí)候不動(dòng)仿粹,是因?yàn)楸Wo(hù)隱私搁吓,別當(dāng)做你電腦死機(jī)!

*/

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

在CMD窗口執(zhí)行如下命令吭历,輸入秘鑰確認(rèn)即可生成簽名文件 yourname.keystore 堕仔,

$ keytool -genkey -v -keystore [姓名].keystore -alias [姓名].keystore -keyalg RSA -validity 20000

輸入如圖:

(PS:真 · JAVA 密保)

此時(shí)按下回車,即可生成簽名:

如果報(bào)錯(cuò)晌区,說(shuō)明你的 CMD 不是以管理員身份打開的摩骨,請(qǐng)?jiān)诠芾韱T身份下打開。

命令2:給文件簽名

使用剛才生成的 signer 來(lái)給 app 簽名朗若,Usage:

[姓名].keystore -signedjar 簽名后的apk 簽名之前的apk 簽名包名(命令一生成的簽名文件名)

Exeample :

$ jarsigner -verbose -keystore [姓名].keystore -signedjar complete.apk app.apk [姓名].keystore

輸入前面設(shè)置的密碼恼五,即可簽名。

如上圖所示哭懈,IONIC打包的文件為app.apk,簽名后的文件為complete.apk灾馒,這時(shí)候,可以說(shuō)银伟,一個(gè)軟件就誕生啦你虹!

后續(xù)的軟件壓縮打包可以百度:jarsigner打包

5.疑難雜癥

Without ·from· option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to undefined to prevent this warning

出現(xiàn)這個(gè)提示,說(shuō)明配置不正確彤避。

5.1 文件引用路徑錯(cuò)誤

解決方法:

在“/node_modules/@ionic/app-scripts/dist/sass.js”路徑的“sass.js”文件,在postcssOptions參數(shù)中添加“from: undefined”夯辖。添加后效果如下:

var postcssOptions = {?

? ? ? ? from: undefined,?

? ? ? ? to: path_1.basename(sassConfig.outFile),?

? ? ? ? map: autoPrefixerMapOptions?

? ? };

1

2

3

4

5

5.2 安卓SDK組件缺失/缺少/不匹配

報(bào)文:

A problem occurred configuring project ‘:CordovaLib’.

You have not accepted the license agreements of the following SDK components:

[Android SDK Build-Tools 26.0.2].

原因:SDK構(gòu)建工具和platform工具不匹配琉预,或者有東西遺漏了,沒(méi)下載蒿褂。

解決:如果中途報(bào)錯(cuò)SDK出問(wèn)題圆米,請(qǐng)打開C盤/profiles/SDK/manager.exe,使用東軟的鏡像啄栓,根絕報(bào)錯(cuò)信息娄帖,來(lái)down對(duì)應(yīng)的platform或者build包。

5.3 缺少安卓構(gòu)建/打包工具

報(bào)錯(cuò)報(bào)文:

Unhandled promise rejection (rejection id: 1): CordovaError: Could not

find an installed version of Gradle either in Android Studio, or on

your system to install the gradle wrapper. Please include gradle in

your path, or install Android Studio (node:3444) [DEP0018]

DeprecationWarning: Unhandled promise rejections are deprecated. In

the future, promise rejections that are not handled will terminate the

Node.js process with a non-zero exit code.

原因:缺少安卓構(gòu)建打包工具昙楚,報(bào)文提示你可以用Android Studio近速,也可以安裝一個(gè)Gradle。

解決辦法:

去http://services.gradle.org/distributions/ 下載 gradle-4.1-bin.zip,下載完成解壓到和JDK,SDK相同的父目錄削葱,便于將來(lái)查找(C:\Program Files\gradle-4.1)

配置相應(yīng)的環(huán)境變量:

鍵:GRADLE_HOME

值:E:\software\gradle-3.0 (你的東西下載到哪奖亚,就填寫對(duì)應(yīng)的目錄)

環(huán)境變量 path 中繼續(xù)后綴

;%GRADLE_HOME%\bin (WIN7及以下系統(tǒng)注意封號(hào),WIN 10 可以忽略)

完成上述任務(wù)后析砸,重新運(yùn)行Gitbash,然后 $ ionic cordova build android ,發(fā)現(xiàn)build成功昔字,會(huì)自動(dòng)下載gradle-4.1-bin.zip (初步猜測(cè)是因?yàn)樽约旱膅radle路徑不對(duì),也可能是沒(méi)有被項(xiàng)目依賴首繁,但是項(xiàng)目在全局空間中發(fā)現(xiàn)gradle環(huán)境作郭,因此自己要下載gradle來(lái)依賴。)

5.4 在安裝弦疮,或者build 時(shí)沒(méi)有管理員權(quán)限所坯,導(dǎo)致無(wú)法寫入磁盤

解決方法: 以管理員身份運(yùn)行 CMD (commder )即可。

5.5 無(wú)法簽名

jarsigner: 無(wú)法對(duì) jar 進(jìn)行簽名: java.util.zip.ZipException: invalid entry compressed size (expected 7508 but got 7333 bytes)

解決辦法:已經(jīng)簽名過(guò)了挂捅,無(wú)需再次簽名芹助。

---------------------

作者:Tycho丶

來(lái)源:CSDN

原文:https://blog.csdn.net/qq_20264891/article/details/79319408

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接闲先!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末状土,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子伺糠,更是在濱河造成了極大的恐慌蒙谓,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件训桶,死亡現(xiàn)場(chǎng)離奇詭異累驮,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)舵揭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門谤专,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人午绳,你說(shuō)我怎么就攤上這事置侍。” “怎么了拦焚?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蜡坊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我赎败,道長(zhǎng)秕衙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任僵刮,我火速辦了婚禮据忘,結(jié)果婚禮上鹦牛,老公的妹妹穿的比我還像新娘。我一直安慰自己若河,他們只是感情好能岩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萧福,像睡著了一般拉鹃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鲫忍,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天膏燕,我揣著相機(jī)與錄音邻储,去河邊找鬼檩奠。 笑死猪狈,一個(gè)胖子當(dāng)著我的面吹牛露久,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谜嫉,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼骄酗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼嘱兼!你這毒婦竟也來(lái)了智润?” 一聲冷哼從身側(cè)響起及舍,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎窟绷,沒(méi)想到半個(gè)月后锯玛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兼蜈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年攘残,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片为狸。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡歼郭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钥平,到底是詐尸還是另有隱情实撒,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布涉瘾,位于F島的核電站,受9級(jí)特大地震影響捷兰,放射性物質(zhì)發(fā)生泄漏立叛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一贡茅、第九天 我趴在偏房一處隱蔽的房頂上張望秘蛇。 院中可真熱鬧其做,春花似錦、人聲如沸赁还。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)艘策。三九已至蹈胡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間朋蔫,已是汗流浹背罚渐。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驯妄,地道東北人荷并。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像青扔,于是被迫代替她去往敵國(guó)和親源织。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容