如何快速优雅地导入第三方Android项目

版权说明 : 《如何快速优雅地导入第三方Android项目》于当前CSDN博客乘月网属同一原创,转载请说明出处,谢谢。

最近有很多朋友都在向我抱怨导入第三方项目遇到各种各样的问题,有的人怀疑这些项目有问题,有的人则不惜修改Android Studio(下文简称:AS)或jdk的一些底层配置。鉴于此,作此文统一回答。

  其实好好想想:谁会没事干上传些有问题的项目呢?你有做过多少项目需要修改AS或jdk的底层配置呢?这反映了你对AS的Android项目结构的认识较浅或平时导入第三方项目爬坑的总结较少哈。本文只针对AS导入第三方Android项目,至于Eclipse?方法虽有,但求别再折腾了,赶紧换AS吧。


了解AS项目主要构建要素

项目 构建要素 构建项目费时费力指数
1、Gradle gradle构建资源包,gradle tools构建插件 ★★★★★
2、buildTools Android构建工具包 ★★★★
3、sdk compileSdk,targetSdk ★★★★
4、support lib 如:support-v4,appcompat-v7 ★★
5、第三方lib 如:图片解析库glide,网络解析库okhttp

分析

其实构建Android项目本身并不麻烦,也不太耗时,主要是因为如果AS本地没有安装过目标项目指定版本的这些要素,AS就会现场下载,安装这些要素,然后再去构建目标项目。如果中间出现下载或解压或安装错误,你不知道怎么去解决,那真的要怀疑人生了。

如何优雅?

1.先下载AS项目压缩包解压好,或者从git和svn下载项目文件,再准备用AS导入项目

请注意:先准备好要导入的项目,不要急着AS直接导入。现在AS很强大,本身支持git和svn导入项目,但请不要这么做,除非你确定它们能很好的导入

2.对照已有的AS项目修改目标项目关于这些要素的版本号

你可能明白我的意思了,如果本地有了这些版本的要素,那就不用下载了,是不是?

本文以开源库CySharedElementTransition为目标项目例子,下载地址:https://github.com/ausboyue/CySharedElementTransition,先下载压缩包,再解压。

打开已有的项目,查看gradle构建资源包版本:

图片[1]-如何快速优雅地导入第三方Android项目-乘月网

gradle为gradle-4.6-all.zip版本包,那么请把目标项目的gradle-wrapper.properties文件内容里的版本 gradle-4.4-all.zip改为gradle-4.6-all.zip

图片[2]-如何快速优雅地导入第三方Android项目-乘月网

同理对照着修改buildTools,sdk,support lib,第三方lib版本

图片[3]-如何快速优雅地导入第三方Android项目-乘月网
图片[4]-如何快速优雅地导入第三方Android项目-乘月网

Ok,作出以上修改,差不多就可以安心的用AS导入目标项目了。

值得注意的是:第三方lib版本能不修改最好不要去修改,第一他们几乎不会影响下载和编译速度,第二,他们每个版本的api代码可能不一样,修改后项目出现某类某方法找不到等等错误,你懂的。

写到最后

你以为就这样结束了?作为五星指数的Gradle可谓麻烦众多,容我再唠叨2点:

1. Gradle构建工具插件和Gradle版本有着一定的版本对应关系,看下表:

Gradle插件版本 要求的Gradle版本范围
1.0.0 - 1.1.3 2.2.1 - 2.3
1.2.0 - 1.3.1 2.2.1 - 2.9
1.5.0 2.2.1 - 2.13
2.0.0 - 2.1.2 2.10 - 2.13
2.1.3 - 2.2.3 2.14.1+
2.3.0+ 3.3+
3.0.0+ 4.1+
3.1.0+ 4.4+
... ...
com.android.tools.build:gradle:版本号 https://services.gradle.org/distributions/gradle-版本号-all.zip

所以在修改gradle版本时请注意两者版本的对应关系,以免出现问题。

2. 如果你真的不想改动第三方项目的gradle版本,而本地没有安装过该版本

这里介绍一个很简单粗暴的方法,仍以CySharedElementTransition为例,项目gradle版本为4.4,本地没有安装该版本的Gradle,先导入CySharedElementTransition,AS一直卡在gradle中(其实是在下载4.4版本的Gradle),这时候直接通过任务管理器或其它方式强制关闭AS,然后进入Gradle编译包的安装目录,windows默认在用户目录下C:\Users\Cheny\.gradle\wrapper\dists\,如下图:

图片[5]-如何快速优雅地导入第三方Android项目-乘月网

AS在导入项目进入gradle中时,如果本地没有目标版本的Gradle编译包就会自动为其创建安装目录gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1,其中9br9xq1tocpiv8o6njlyu5op1为Gradle插件通过算法(md5+base36组合算法,不是本文重点)生成的目录名,Gradle编译包最终会安装在该目录下。

然后自行通过某雷,某DM,浏览器等下载器下载目标版本的压缩包,https://services.gradle.org/distributions/gradle-4.4-all.zip(https://services.gradle.org/distributions/gradle-版本号-all.zip),下载完毕后将压缩包复制到安装目录下,目录下的其它文件**全部删除**(包括.lck、.ok和.part等文件):

图片[6]-如何快速优雅地导入第三方Android项目-乘月网

打开AS,打开CySharedElementTransition或重新导入CySharedElementTransition即可自动解压安装目标版本Gradle包,构建要素的第一项算是完成了。

总结:说来说去,都是离不开“下载”两个字,毕竟是国外的IDE,如果能开上代理网络,或许这些问题都能迎刃而解了。当然,能不下载就别去下载,这样可以有效避免下载过多几乎不用的gradle和sdk等资源,这些问题是导致很多人的c盘慢慢爆满了,AS,sdk达到十几甚至几十g的主要原因之一。

© 版权声明
THE END
喜欢就支持以下吧
点赞1 分享
评论 共10条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容