乘月网
专注于移动互联网

如何快速优雅地导入第三方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构建资源包版本:

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

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

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

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

如何快速优雅地导入第三方Android项目
如何快速优雅地导入第三方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\,如下图:

如何快速优雅地导入第三方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等文件):

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

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

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

赞(1) 打赏
未经允许不得转载:乘月网 » 如何快速优雅地导入第三方Android项目

评论 10

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1
    头像

    收藏先

    老杜 1年前 (2018-06-17) 来自天朝的朋友 回复
  2. #2
    头像

    你好,我也是做开发的,最近也在做个网站,可否交换个友链http://www.lgwimonday.cn/

    小神仙 1年前 (2018-06-18) 来自天朝的朋友 回复
  3. #3
    头像

    隔行如隔山,只能路过灌灌水 [阴险]

    boke112导航 1年前 (2018-06-19) 来自天朝的朋友 回复
    • 头像

      @boke112导航 您老才是技术牛人 ,我水得很[赞]

      cheny 1年前 (2018-06-20) 来自天朝的朋友 回复
  4. #4
    头像

    文章不错非常喜欢

    新闻头条 1年前 (2018-06-19) 来自天朝的朋友 回复
  5. #5
    头像

    要是会开发APP就好

    区块链 1年前 (2018-07-20) 来自天朝的朋友 回复
    • 头像

      @区块链 有的,已经出品了一款app,你可以看看

      cheny 1年前 (2018-07-20) 来自天朝的朋友 回复
  6. #6
    头像

    你好,我也是做开发的,最近也在做个网站,可否交换个友链http://blog.hack-jiuling.cn/

    90之家 1年前 (2018-07-27) 来自天朝的朋友 回复
    • 头像

      @90之家 请在留言板留言按格式申请哦 [OK]

      cheny 1年前 (2018-07-31) 来自天朝的朋友 回复

专注于移动互联网

CSDNGithub

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏