如何快速優雅地導入第三方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構建資源包版本:

gradle爲gradle-4.6-all.zip版本包,那麼請把目標項目的gradle-wrapper.properties文件內容裏的版本gradle-4.4-all.zip改爲gradle-4.6-all.zip

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

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\,如下圖:

AS在導入項目進入gradle中時,如果本地沒有目標版本的Gradle就會自動爲其創建安裝目錄gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1,其中9br9xq1tocpiv8o6njlyu5op1爲隨機碼目錄,意味着AS每次創建該目錄,目錄名可能都不相同,不要在意這點,反正Gradle最終是安裝在隨機碼目錄下。

然後自行通過某雷,某DM,瀏覽器等下載器下載目標版本的壓縮包,https://services.gradle.org/distributions/gradle-4.4-all.ziphttps://services.gradle.org/distributions/gradle-版本號-all.zip),下載完畢後將壓縮包複製到隨機碼目錄下,目錄下的其它文件全部刪除:


打開AS,打開CySharedElementTransition或重新導入CySharedElementTransition即可自動解壓安裝目標版本Gradle包,構建要素的第一項算是完成了。

總結:說來說去,都是離不開“下載”兩個字,畢竟是國外的IDE,如果能開上代理網絡,或許這些問題都能迎刃而解了。當然,能不下載就別去下載,這樣可以有效避免下載過多幾乎不用的gradle和sdk等資源,這些問題是導致很多人的c盤慢慢爆滿了,AS,sdk達到十幾甚至幾十g的主要原因之一。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章