转自:https://blog.csdn.net/Niteip/article/details/69937335 用Egret开发的过程比较轻松,当我开始打包 & 热更时,遇到了巨量的问题 本文是Android打包教程,旨在讲解Egret打包Android的过程中,各种配置该怎么改,还有一些坑的解释 1 综述Wing插件里的发布Android是有问题的,最好用命令行 打包Android就是把原生的HTML5游戏,转为Android项目,再用Android Studio(简称AS)生成APK 官方现在偏向使用Android Studio,原因很多,在此不赘述 配置环境安装Android Studio,我选择2.2.3版本 安装好后,增加系统环境变量:ANDROID_HOME 路径是你的Android Sdk路径 接着在系统变量Path里增加:
配置好后你就可以在cmd里使用adb命令了,如果不行,请检查配置(下同)。 接着配置gradle,AS 2.2.3自带gradle 2.14.1,该版本是二。十四,比2.8要高,回想最开始我在这个版本这里被坑了几个小时 新建系统环境变量:GRADLE_HOME 路径是 你的Android Studio目录\gradle\gradle-2.14.1 接着在系统变量Path里增加:
最好重启计算机,然后就可以在cmd里使用gradle命令了 然后配置java的环境变量: 参考http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html 配置好后就可以在cmd里使用javac命令了 接着配置AS,因为AS默认用户的网络环境很好,随时都想联网下东西,还想连外国的服务器,国内有墙,所以几乎不行 先干掉Android first run: 参考:http:///2015/05/06/android-studio/ 然后告诉AS我想要进入离线模式: 开始打包现在回到Wing,在终端输入
其中,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 内容大概如下:
最后一行就是项目使用的gradle,Support 4.0.3默认使用的2.8,我们改为
重新进,现在就能进去了 修改工程属性开始修改配置,注意,所有的项目配置最终都是改的代码,这些代码在配置文件里,本文只介绍可视化的修改方法 Android Plugin用2.2.3,因为2.2.3可以使用Instant Run 选择Sdk Version和Build Tool 我们为了兼容更多的用户(玩家)的机型,肯定选择稍微低一点的版本比较好,所以 教你怎么离线安装Sdk和build Tool。 你极有可能遇到这个错: 这是因为AS把你的top-level build.gradle 改错了,我觉得这是AS的bug 来看下工程结构 一个工程只有一个Top-level,有多少个项目就有多少个Module-Level Module-Level gradle里,大概像这样:
而Top-level gradle里,不能有Android{}标签,检查下,你的Top-Level里应该是写错了,将之删除 好了,现在在终端输入:
开始编译,如果是第一次编,有可能需要去下jcenter,这时等下吧。 我的公司环境是内网完全不能联网,怎么办? 1.用mavenLocal 先解释下:
在完全不能联网的环境,我可以使用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里加上
完成。 如果你是使用mavenLocal,你可能还会遇到 could not found junit 4.12 如果你没有跑测试用例的需求,那可以选择把dependencies {}里
删掉,同时还要删掉这两个文件夹,它们是用于编写测试用例的 终于,编译成功了,可以看到AS在 wonder\proj.android\app\build\outputs\apk\ 下生成了两个apk 一个debug,一个没签名的release 先解释下: Egret的debug和release概念和Android是有些不同的
至于怎么签名,请看http:///questions/18328730/how-to-create-a-release-signed-apk-file-using-gradle 到这里,Android的打包就算完了 Egret的发布,请看这篇文章。(暂时没写) |
|