在項(xiàng)目中有兩個(gè)Android Library分別為latte-ec和latte-core,使用example依賴latte-ec,然后latte-ec又依賴latte-core勺疼,但是在example里面調(diào)用不到latte-core里面的類Latte愉舔,如下圖所示:
解決方案:這個(gè)主要是Android Studio 3.0版本的問題个曙,在3.0版本中,compile指令被標(biāo)注為過時(shí)方法待逞,而新增了兩個(gè)依賴指令甥角,一個(gè)是implementation 和 api,這兩個(gè)都可以進(jìn)行依賴添加识樱,但是有區(qū)別:
api指令完全等同于compile指令嗤无,沒區(qū)別,你將所有的compile改為api怜庸,完全沒有錯(cuò)当犯。
implementation指令簡(jiǎn)單來說,就是使用了該命令編譯的依賴割疾,只會(huì)是自身有依賴嚎卫,而不對(duì)外部公開,也就是說宏榕,如果latte-ec依賴latte-core使用的是implementation指令拓诸,那么example依賴latte-ec時(shí),不可以調(diào)用到latte-core里面的資源麻昼,只有l(wèi)atte-ec可以奠支。如果example依賴latte-ec時(shí)想要調(diào)用到latte-core里面的類,就需要latte-ec依賴latte-core時(shí)使用api指令抚芦。