公司有個(gè)好幾年的老項(xiàng)目映企,子模塊是一直維護(hù)更新的。這個(gè)項(xiàng)目我一直沒(méi)機(jī)會(huì)碰膨报,昨天開(kāi)始下載下來(lái)弄磷籍,發(fā)現(xiàn)各種錯(cuò)。現(xiàn)在記錄下遇到的幾個(gè)錯(cuò):
1现柠、glide庫(kù)版本沖突院领,主項(xiàng)目的glide和用到的第三方的glide版本不一致。最重要的是glide庫(kù)在老版本(我猜測(cè)是從4.10.0前)用的是support包够吩,后面都升級(jí)用了androidx栅盲。剛開(kāi)始看到項(xiàng)目的庫(kù)有androidx的jar引用,找了半天沒(méi)找到那里用了废恋。后面問(wèn)下大神才知道如何查找各種依賴庫(kù)關(guān)系。有兩種方法:
第一種扒寄,在項(xiàng)目目錄下運(yùn)行:./gradlew app:dependencies
第二種鱼鼓,如圖點(diǎn)擊運(yùn)行:
可以非常方便看到哪個(gè)庫(kù)用到androidx!该编!
2迄本、當(dāng)然就是support包版本的沖突
我在主項(xiàng)目app目錄的build.gradle文件的android大括號(hào)里添加appCompact包強(qiáng)制統(tǒng)一的版本使用,如圖:
configurations.all{
? ? resolutionStrategy.eachDependency{ details->
? ? ? ? def requested = details.requested
// requested.group == 'com.android.support:recyclerview-v7'
? ? ? ? if (requested.group =='com.android.support') {
if (!requested.name.startsWith("multidex")) {
//這里寫你想統(tǒng)一的版本是多少课竣,前提是你sdk里有
? ? ? ? ? ? ? ? details.useVersion'28.0.0'
? ? ? ? ? ? }
}
}
}
以為到了這步就可以運(yùn)行起來(lái)嘉赎,發(fā)現(xiàn)一直報(bào)這個(gè)錯(cuò):No resource identifier found for attribute 'appComponentFactory' in package 'android',不關(guān)androidx問(wèn)題于樟,還是support沖突問(wèn)題公条。
上網(wǎng)查了資料,始終沒(méi)頭緒迂曲,后面想起來(lái)之前遇到過(guò)類似的問(wèn)題靶橱。解決方法就是app項(xiàng)目的build.gradle的compileSdkVersion、targetSdkVersion、buildToolsVersion這些相關(guān)的版本號(hào)需要和com.android.support:appcompat-v7:28.0.0的一致关霸,也就是需要把他們改成 28 的版本號(hào)传黄。
最后完美運(yùn)行起來(lái)了!