1. 程式人生 > >Android Studio專案中三種依賴的新增方式

Android Studio專案中三種依賴的新增方式

通常一個AS專案中的依賴關係有三種,一是本地依賴(主要是對本地的jar包),二是模組依賴,三是遠端依賴;新增這些依賴的目的在於上我們想要在專案的某一個模組中使用其中的功能,比如okttp這個網路框架庫,如果我們想要在專案的app模組下使用這個庫的功能,則需要在app模組的build.gradle檔案中新增相應的依賴,Gradle外掛首先會在本地檔案系統上去查詢是否存在,如果不存在,然後會到全域性的build.gradle檔案中指定的程式碼倉庫中去獲取,需要聯網,下面是指定的專案可以在哪些程式碼倉庫當中去獲取開源專案

 
全域性的build.gradle檔案中的部分

三種依賴關係的新增是在模組中的build.gradle檔案中的dependencies閉包下進行新增的

  模組下的build.gradle檔案中的dependencies閉包

implementation fileTree(include: ['*.jar',dir:'libs'])這行語句的作用是一個本地依賴的宣告,表示的含義是將當前專案中的libs目錄下的所有後綴名為.jar檔案都新增到專案的構建路徑當中去,可以理解為本地依賴宣告,但不是本地依賴的新增;本地依賴的新增較為簡單,只需要將jar檔案放置到相應模組(哪一個模組想用使用這個jar包提供的功能,就需要在該模組下的build.gradle檔案中新增依賴)下的libs目錄下,然後同步一下,看個新增本地依賴的例子吧:

首先來看一下沒有新增本地依賴前模組的build.gradle檔案的dependencies閉包的內容

  沒有新增本地依賴前的閉包的內容

記著它的樣子,然後由於我們想要在app模組下使用jar包中的功能,首先我們將jar複製到app模組下的libs目錄中,如圖

  將jar包新增到libs目錄下\

不知道大家注意到沒有,此時jar包是不可以點選開的,表示這個jar包還有新增到當前專案的構建目錄當中,可以理解為沒有在該模組下新增本地依賴。接下來我們右鍵單擊jar包,找到Add As Library選項,進行同步

  新增本地依賴

當我們將jar包進行依賴新增後,此時jar檔案是可以點選開來的,而且此時我們再次右鍵jar檔案時,Add As Library選項找不到了哦。如果你覺得這樣會比較麻煩,那我們可以直接點選同步小按鈕,不再右鍵單擊jar包,也可以到達目的,下面是同步小按鈕

  同步小按鈕

新增本地依賴之後的jar檔案是可以展開的

  同步之後的jar檔案

最後再來看一下dependencies閉包下的內容改變了什麼

  新增本地依賴後的dependencies內容

上面就是本地依賴的新增方式,其實我們可以直接書寫多出來的語句新增到dependencies閉包當中。接下來再來學習一下模組依賴的視覺化新增,點選Project Structure按鈕,出現以下介面

  Project Structure

然後點選新增模組依賴

  模組依賴新增

一點選模組依賴,出現以下介面,說當前專案沒有可以引用的模組

  模組依賴新增三

這是為什麼呢?我們能夠新增的模組依賴智慧是當前專案所包含的,即右邊的Modules中列出的模組。這個時候我們需要將模組複製到當前專案,比如我們新增CnwinLib模組,首先要將庫模組複製到當前專案,然後在setting.gradle檔案指明當前專案包含的模組

  將庫模組複製到當前專案

在setting.gradle檔案中指明當前專案包含的模組

  指明當前專案包含的模組

此時我們在來新增模組依賴

  成功了

然後點選ok,Gradle會幫我同步,此時再來看一下dependencies閉包的內容

  模組依賴語句

implementation project(':CnwinLib')就是用於新增模組依賴的語句,因此我們可以直接書寫這個語句,不需要點選來點選去的,前提是如果你記得語句的格式。對於遠端依賴的新增是類似的,就不多說。 

總結一下,新增本地依賴的語句是implementation files('file-name'),新增模組依賴的語句implementation project(':模組名'),遠端依賴新增的語句implementation '那個依賴地址'。

注意點,如果模組要想使用另一個模組,必須進行模組依賴的引用;遠端依賴是在全域性的build.gradle檔案中的程式碼倉庫當中去獲取的,如果我們要新增的遠端依賴的開源庫所在的託管倉庫不在我們專案的全域性的build.gradle檔案中宣告過,那麼我們是會依賴新增失敗的哦。

作者:拜託科技
連結:https://www.jianshu.com/p/04159a2159b4
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。