一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Egret打包Android

 郭恩 2018-09-04

轉(zhuǎn)自:https://blog.csdn.net/Niteip/article/details/69937335


用Egret開發(fā)的過程比較輕松,當我開始打包 & 熱更時,遇到了巨量的問題

本文是Android打包教程,旨在講解Egret打包Android的過程中,各種配置該怎么改,還有一些坑的解釋

1 綜述

Wing插件里的發(fā)布Android是有問題的,最好用命令行

打包Android就是把原生的HTML5游戲,轉(zhuǎn)為Android項目,再用Android Studio(簡稱AS)生成APK

官方現(xiàn)在偏向使用Android Studio,原因很多,在此不贅述

配置環(huán)境

安裝Android Studio,我選擇2.2.3版本

安裝好后,增加系統(tǒng)環(huán)境變量:ANDROID_HOME

路徑是你的Android Sdk路徑

這里寫圖片描述

接著在系統(tǒng)變量Path里增加:

%ANDROID_HOME%\platform-tools

配置好后你就可以在cmd里使用adb命令了,如果不行,請檢查配置(下同)。

接著配置gradle,AS 2.2.3自帶gradle 2.14.1,該版本是二。十四,比2.8要高,回想最開始我在這個版本這里被坑了幾個小時

新建系統(tǒng)環(huán)境變量:GRADLE_HOME

路徑是 你的Android Studio目錄\gradle\gradle-2.14.1

這里寫圖片描述

接著在系統(tǒng)變量Path里增加:

%GRADLE_HOME%\bin

最好重啟計算機,然后就可以在cmd里使用gradle命令了

然后配置java的環(huán)境變量:

參考http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html

配置好后就可以在cmd里使用javac命令了


接著配置AS,因為AS默認用戶的網(wǎng)絡(luò)環(huán)境很好,隨時都想聯(lián)網(wǎng)下東西,還想連外國的服務(wù)器,國內(nèi)有墻,所以幾乎不行

先干掉Android first run:

參考:http:///2015/05/06/android-studio/

然后告訴AS我想要進入離線模式:

這里寫圖片描述

這里寫圖片描述

開始打包

現(xiàn)在回到Wing,在終端輸入

egret create_app wonder -f . -t %你的Support路徑%\egret-android-support-as-4.0.3

其中,wonder是你的項目的名字,-f是項目路徑(我就是當前),-t是你的support模版路徑

看下官方給的support里包含什么

__MACOSX、egret-android-support-4.0.3 和 egret-android-support-as-4.0.3

帶“as”的就是Android Studio項目模版,不帶的是其他工程(比如eclipse)的模版

生成好后,打開AS,點擊導入工程:

這里寫圖片描述

選擇proj.android

這里寫圖片描述

你極有可能會卡在這里

這里寫圖片描述

這是因為AS嘗試去下載gradle,下載的版本是由項目配置而定的,這個是基本下不動的,所以我們要指定項目配置用gradle 2.14.1:

找到 你的Android項目\proj.android\gradle\wrapper\gradle-wrapper.properties

內(nèi)容大概如下:

distributionBase=GRADLE_USER_HOME

distributionPath=wrapper/dists

zipStoreBase=GRADLE_USER_HOME

zipStorePath=wrapper/dists

distributionUrl=https://services./distributions/gradle-2.8-all.zip

最后一行就是項目使用的gradle,Support 4.0.3默認使用的2.8,我們改為

distributionUrl=https://services./distributions/gradle-2.14.1-all.zip

重新進,現(xiàn)在就能進去了

修改工程屬性

開始修改配置,注意,所有的項目配置最終都是改的代碼,這些代碼在配置文件里,本文只介紹可視化的修改方法

這里寫圖片描述

這里寫圖片描述

這里寫圖片描述

Android Plugin用2.2.3,因為2.2.3可以使用Instant Run

這里寫圖片描述

選擇Sdk Version和Build Tool

我們?yōu)榱思嫒莞嗟挠脩簦ㄍ婕遥┑臋C型,肯定選擇稍微低一點的版本比較好,所以

這篇文章

教你怎么離線安裝Sdk和build Tool。

你極有可能遇到這個錯:

這里寫圖片描述

這是因為AS把你的top-level build.gradle 改錯了,我覺得這是AS的bug

來看下工程結(jié)構(gòu)

這里寫圖片描述

一個工程只有一個Top-level,有多少個項目就有多少個Module-Level

Module-Level gradle里,大概像這樣:

  1. apply plugin: 'com.android.application'
  2. android {
  3. compileSdkVersion 25
  4. buildToolsVersion "25.0.1"
  5. defaultConfig {
  6. applicationId "org.egret.java.wonder"
  7. minSdkVersion 14
  8. targetSdkVersion 25
  9. versionCode 1
  10. versionName "1.0"
  11. }
  12. buildTypes {
  13. release {
  14. minifyEnabled false
  15. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  16. }
  17. }
  18. sourceSets{
  19. main{
  20. assets.srcDirs = ['../assets']
  21. jniLibs.srcDirs=['libs']
  22. }
  23. }
  24. useLibrary 'org.apache.http.legacy'
  25. }
  26. dependencies {
  27. compile fileTree(dir: 'libs', include: ['*.jar'])
  28. testCompile 'junit:junit:4.12'
  29. compile 'com.android.support:appcompat-v7:19.+'
  30. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

而Top-level gradle里,不能有Android{}標簽,檢查下,你的Top-Level里應(yīng)該是寫錯了,將之刪除

好了,現(xiàn)在在終端輸入:

gradle build

開始編譯,如果是第一次編,有可能需要去下jcenter,這時等下吧。

我的公司環(huán)境是內(nèi)網(wǎng)完全不能聯(lián)網(wǎng),怎么辦?

1.用mavenLocal

先解釋下:

世界上有兩個標準倉庫,jcenter和Maven Central,它們都是Maven倉庫

但是它們維護在完全不同的服務(wù)器上,由不同的人提供內(nèi)容,兩者之間毫無關(guān)系。

事實上兩個倉庫都具有相同的使命:提供Java或者Android library服務(wù)。上傳到哪個(或者都上傳)取決于開發(fā)者。

起初,Android Studio 選擇Maven Central作為默認倉庫。但是Maven Central的最大問題是對開發(fā)者不夠友好。上傳library異常困難。上傳上去的開發(fā)者都是某種程度的極客。同時還因為諸如安全方面的其他原因,Android Studio團隊決定把默認的倉庫替換成jcenter。

在完全不能聯(lián)網(wǎng)的環(huán)境,我可以使用AS自帶的maven倉庫,步驟如下:

先找到 C:\Users\你的名字\

新建文件夾,名字叫 .m2,在改名的時候你要輸入 .m2.,即前后都有點,共兩個點

然后進去,把 你的Android Studio目錄\gradle\ 里的m2repository全部拷過去,拷到 C:\Users\你的名字\.m2

然后將其改名為repository

然后在Project里,把Plugin和Library改為 mavenLocal,完成。

這里寫圖片描述

2.另一種辦法,就是把下載好的jcenter傳送進去

回到編譯上,你有可能會遇到lintOptions問題,照AS的提示,在app\build.gradle里加上

  1. lintOptions {
  2. abortOnError false
  3. }
  • 1
  • 2
  • 3
  • 4

完成。

如果你是使用mavenLocal,你可能還會遇到 could not found junit 4.12

如果你沒有跑測試用例的需求,那可以選擇把dependencies {}里

testCompile 'junit:junit:4.12'
  • 1
  • 2

刪掉,同時還要刪掉這兩個文件夾,它們是用于編寫測試用例的

這里寫圖片描述

終于,編譯成功了,可以看到AS在 wonder\proj.android\app\build\outputs\apk\ 下生成了兩個apk

這里寫圖片描述

一個debug,一個沒簽名的release

先解釋下:

Egret的debug和release概念和Android是有些不同的

 debugrelease
Egretcreate_app生成的,沒有runtime,編譯參數(shù)DEBUG為恒真publish生成的,可以用runtime,編譯參數(shù)DEBUG為恒假
Android特殊處理,自帶debug簽名沒有簽名,沒有簽名的APK是不能安裝的

至于怎么簽名,請看http:///questions/18328730/how-to-create-a-release-signed-apk-file-using-gradle

到這里,Android的打包就算完了

Egret的發(fā)布,請看這篇文章。(暫時沒寫)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    久久精品久久久精品久久| 中文久久乱码一区二区| 成人午夜在线视频观看| 中文字幕亚洲精品在线播放| 午夜福利92在线观看| 又色又爽又黄的三级视频| 久久精品少妇内射毛片| 日本二区三区在线播放| 亚洲精品一区二区三区免| 日韩在线精品视频观看| 欧美中文日韩一区久久| 高清一区二区三区大伊香蕉 | 精品欧美日韩一区二区三区| 少妇高潮呻吟浪语91| 久热香蕉精品视频在线播放| 美女被后入视频在线观看| 久久精品国产99精品最新| 日本人妻精品有码字幕| 中文字幕一区久久综合| 东京热电东京热一区二区三区| 成人午夜爽爽爽免费视频| 精品人妻一区二区三区免费| 欧美成人久久久免费播放| 日韩日韩日韩日韩在线| 国产精品不卡高清在线观看| 老司机精品在线你懂的| 国产老熟女超碰一区二区三区| 91人妻久久精品一区二区三区 | 久久精品国产一区久久久| 日本加勒比在线播放一区| 天海翼高清二区三区在线| 精品高清美女精品国产区| 中文字幕一区二区免费| 久久精品色妇熟妇丰满人妻91| 日韩不卡一区二区在线| 午夜福利网午夜福利网| 日韩人妻中文字幕精品| 国产又猛又黄又粗又爽无遮挡| 国产精品久久熟女吞精| 黄色在线免费高清观看| 久久精品免费视看国产成人|