關(guān)于依賴后綴添加@aar與不添加的區(qū)別

問題概述:

在開發(fā)項目的時候,自己將開發(fā)的module發(fā)布到maven遠程倉庫,然后在項目中添加了對應依賴,使用的是添加后綴@aar的形式,但是使用intent進行跳轉(zhuǎn)對應activity時,卻崩潰了,日志中是提示的對應的class找不到,但是目標activity是在配置清單中注冊了呀...

問題原因

最終,找到了一篇文章:https://stackoverflow.com/questions/30157575/why-should-i-include-a-gradle-dependency-as-aar

image.png

翻譯過來:
當您指定@后綴時,您將強制以您指定的格式(可能存在也可能不存在)下載庫。 這很有用,例如 當作者忘記指定庫是.aar和maven(或gradle,不確定)默認情況下將其視為.jar。 如果指定了@后綴,則不再下載此庫的依賴項,因此您必須手動確保。

簡而言之,如果添加了@aar后綴,就不會去保證依賴的完整性,只會以指定的格式去下載maven庫中的信息。

解決方案

方案1:Transitive用于自動處理子依賴項。默認為true,gradle自動添加子依賴項,形成一個多層樹形結(jié)構(gòu);設(shè)置為false,則需要手動添加每個依賴項。

implementation('com.android.support:appcompat-v7:22.1.1@aar') {
    transitive = true
}

方案2:去除@aar后綴即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容