前言

随着项目版本的不断迭代,体积也不断地变大,现在每次编译都得花上十几分钟的时间去等待,折腾各种优化方案仍旧对编译时间没有任何太大的改善。对着这低配置的电脑,每天都真够无奈的,一个不小心Android Studio就卡死或者电脑死机了,感叹编译都这么难吗? 问题终归得解决,自从引入了蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案 ———— Freeline,真的是6得飞起来,从此不用再担心编译慢的问题咯.具体的集成会在下面贴上官方详细介绍,这篇文章就记录本人在Android Studio开发的项目上集成过程中遇到的坑。

Ⅰ. 集成

参考下官方的文档,里面有非常的详细的介绍
>
- https://github.com/alibaba/freeline/blob/master/README-zh.md
- https://yq.aliyun.com/articles/59122

Ⅱ.大坑小坑

看到好多小伙伴在折腾Freeline的集成过程中都会遇到不少的问题,当然,有些问题仍得期待官方逐渐完善,但是大多问题是可以得到解决的,可以到上面网址的云栖社区看下官方介绍下面的留言,经常遇到的问题都能看到解决方法,如下截图:


下面记录遇到的坑

1.flavor的坑

简单贴下异常信息,如下

Missing the productFlavor configuration?
You can try to add productFlavor to freeline DSL, for example:freeline { hack true productFlavor 'your-flavor'
}Then re-run python freeline.py again.

上面是异常信息,其实信息已经明确说了应该怎么解决,主要是由于gradle配置多渠道的原因导致的,加入下面标注的,然后Sync Now即可.

解决

    productFlavors {huawei{}baidu {}_360 {}lenovo{}yidong{}yingyongbei{}xiaomi {}//...}productFlavors.all {flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]}  //加入下面的脚本,指定flavorfreeline {hack trueproductFlavor 'huawei'   //指定flavor为华为市场}

2.flavor的坑2

简单贴下异常信息,如下

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':checkBeforeCleanBuild'.
>  invalid productFlavor : assembleHuawei
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
[ERROR] --------------------------------------------------------
[ERROR] freeline failed when read project info with script: gradlew.bat -q
checkBeforeCleanBuild

解决

主要是由于找不到指定的flavor,那么将下面的flavor指定为gradle里声明的就可以了,比如baidu、_360等(备注:看你gradle里productFlavors声明的渠道名,指定其中1个)

freeline {hack trueproductFlavor 'assembleHuawei'  //这个的值指定错了,改为huawei或其他的渠道包名}

3.又是等待

停留在下面两行,等待N久

[DEBUG] [tracing] build_base_resource_aapt_task: 2838.99998665ms
[DEBUG] [build_base_resource_task] build_base_resource_task finish in 2.9s

解决:可能手机连接不正常,拔掉手机数据线重新接上

4.需要安装python,python的版本要求是2.x,3.x会报错的.

备注:除了上面记录的几个小点,当然还遇到了其他的问题,但大多在云栖的留言板上可以看到相应的问题和解决方案,有些最新的问题留言虽然还没有得到解决,但相信很快会得到解决的.

Ⅲ.集成过程中随笔记录的

>
- gradlew initFreeline -Pmirror -PfreelineVersion=0.8.2 //命令行下载Freeline
- python配置环境变量,将python的安装目录放在path环境变量里,命令行敲下python验证是否成功
- gradle知识点: applicationIdSuffix “.debug” //gradle下指定debug/release模式下打包生成包名的后缀

Ⅳ.总结

集成过程中遇到不少的坑,花了一个上午的时间,但是这两周在项目开发中用着挺爽的,再也不用担心电脑卡死之类的问题。除了第一次编译比较慢,之后简直是秒编译,6得飞起;当然,有时会出现白屏,只要应用退出之后重启就可以了,这么6,项目上没用上真的是不6咯。

Android项目引入Freeline插件,6得飞起相关推荐

  1. Android 项目集成 Freeline

    1.什么是FreeLine? (官网描述) Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具.它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并 ...

  2. FFmpeg系列(二)-Android项目引入FFmpeg库播放视频

    在系列一中讲述了如何编译FFmpeg的源码,现在就在Android项目中引入我们编译出来的库,并实现播放一个在线视频的功能 新建Android工程 新建一个支持ndk的Android工程,在AS中新建 ...

  3. echarts 按需引入模_【React】react项目引入echarts插件

    参考npm文档:[echarts-for-react](echarts-for-react) 由于npm上已经有针对react项目出的echarts插件,所以在这里直接安装 第一步:npm安装echa ...

  4. android 自定义banner,Android项目 引入Banner开源库(轮播图)

    Banner开源库是什么? Banner 是 Android广告图片轮播控件,内部基于ViewPager2实现,Indicator和UI都可以自定义. 怎么使用 Banner 开源库? 1.在项目\a ...

  5. Android项目Build报错Unable to execute dx(65535问题解决方案)

    2019独角兽企业重金招聘Python工程师标准>>> 问题描述:Android项目引入过多的第三方包时,在编译成dex文件的时候,单个dex文件中的方法总数超过了65535个,此时 ...

  6. Freeline秒速编译Android项目详细安卓配置流程

    1.下载Python 2.7+版本,但是不要最新的3.5版本的,因为3.5的不能使用FreeLine. 2.下载完成后,在环境变量的path中添加Python的安装地址,如已存在多个路径,可加&quo ...

  7. Android组件化与插件化开发项目实战整理分享(含支付宝、360、美团、滴滴等大厂项目实战)

    小公司不说,但是在大公司的项目发展到一定程度,就必须进行模块的拆分.模块化是一种指导理念,其核心思想就是分而治之.降低耦合.而在 Android 开发的实践,目前有两种途径来实现,一个是组件化,一个是 ...

  8. Flutter 项目编写 第三方插件库文件引入,本地图片 json数据引入解析

    FlutterDemo是如何一步一步搭建起来的 最初就是直接新建flutter项目,就会自动建立一个入门项目.(开始项目前,需先学习Dart语言) flutter项目代码都在lib目录下编写: 新建包 ...

  9. android studio引入lib,Android studio项目引入另外一个项目做为Lib

    Android studio项目引入另外一个项目做为Libary 方法一:使用Android studio 导入lib项目: 注意: lib项目更改处:html 在build.gradle 文件下 将 ...

最新文章

  1. TCP/IP详解--第二章
  2. 004_Ajax服务器响应
  3. Logistic回归与梯度下降法
  4. Oracle使用数据泵 (expdp/impdp)实施迁移
  5. node mysql崩溃_为什么这个mysql错误会导致nodejs崩溃而不是去catch函数?
  6. 应用场景|R包分类整理
  7. tomcat 虚拟目录与显示目录中文件列表
  8. Python文件夹copy器(多进程版)学习笔记
  9. vb.net 模拟鼠标 失去焦点_DNF:都9102年了还在手动点竹子?鼠标连点器了解一下...
  10. 实验报告 三 密码破解技术
  11. 22. SCHEMA_PRIVILEGES
  12. Nucleus SE RTOS 初始化和启动
  13. 使用Glide加载圆角矩形图片、圆形图片
  14. labview教学视频:http://www.51zxw.net/study.asp?vip=19649795
  15. BERT-QE:用于文档Rerank的上下文化查询扩展模型
  16. 三种方法,刷新 Android 的 MediaStore!让你保存的图片立即出现在相册里!
  17. Windows设置/去除C盘的写保护
  18. Activiti7学习笔记、非常详细 | 进阶篇
  19. 算法[第四版]-图灵程序设计丛书-笔记
  20. 两因素重复测量方差分析,史上最详细SPSS教程!

热门文章

  1. Linux命令行界面菱形乱码解决方法
  2. COMODO免费电子邮件证书
  3. 综合评价模型的缺点_一种项目经理素质的综合评价模型
  4. oppoa3手机android版本,OPPO A5和OPPO A3买哪个好 OPPO A3与OPPO A5区别对比详细评测
  5. win10间歇性闪屏_今天解读win10桌面自动刷新闪屏的完全解决手法
  6. 大型软件开发过程的质量管理体系
  7. 对RCS数据进行预处理
  8. 鸿蒙真能兼容所有安卓应用,鸿蒙系统真要来了!已能全面兼容安卓应用:并且还有57万多APP支持...
  9. 如何写好一份企业直播主题策划?
  10. java c pho_Java PHO库中的行为设置方法