問題概述:
在開發(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后綴即可。