前提
每次做項(xiàng)目的時(shí)候,都會(huì)遇到列表頁(yè)面边涕,所以決定寫(xiě)一個(gè)通用的Adapter晤碘,并且打算用Kotlin完成。寫(xiě)完了功蜓,不算完事园爷,還要發(fā)布到Github上,與他人共享式撼。
注:Log這一欄顯示紅色就是發(fā)布失敗童社,顯示綠色才是發(fā)布成功。
很郁悶著隆,到底是什么原因呢扰楼?之前也發(fā)布過(guò)自定義庫(kù),沒(méi)有出現(xiàn)過(guò)錯(cuò)誤懊榔帧弦赖?!浦辨!結(jié)果這次寫(xiě)完一發(fā)布蹬竖,竟然失敗了。
當(dāng)時(shí)也不知道看log,就在網(wǎng)上搜币厕,網(wǎng)上也沒(méi)搜到列另,因?yàn)楸旧磉@類(lèi)博客就很少,碰到問(wèn)題解決問(wèn)題的就更少了旦装。于是就各種看JitPack的官網(wǎng)页衙,在上面找答案,沒(méi)想到阴绢,誤打誤撞還真找到了店乐。
先說(shuō)一下原因:jitpack的android-maven-gradle-plugin版本要和gradle版本對(duì)應(yīng)好。那具體怎么對(duì)應(yīng)呢呻袭?
點(diǎn)我看一下對(duì)應(yīng)關(guān)系
注:左邊的Plugin Version是android-maven-gradle-plugin版本响巢,右邊的版本是Gradle版本。是在gradle-wrapper.properties中的distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.zip
這樣對(duì)應(yīng)好了棒妨,按照正常的步驟,即可發(fā)布成功含长。
后來(lái)券腔,在發(fā)布封裝的結(jié)合Databinding的通用Adapter的時(shí)候,在JitPack上又失敗了拘泞。上圖中2.1.3版本纷纫。報(bào)的錯(cuò)誤是:
Unresolved reference: databinding
Unresolved reference: ViewDataBinding
Unresolved reference: DataBindingUtil
又懵了,一看報(bào)的錯(cuò)陪腌,還好說(shuō)辱魁,應(yīng)該是沒(méi)把包引進(jìn)去。這里順便說(shuō)一下诗鸭,在JitPack上build失敗染簇,如何看log,點(diǎn)一下紅色的圖標(biāo)即可强岸,本博客第一張圖紅圈里的圖標(biāo)
于是在libaray的build.gradle文件中添加**apply plugin: ‘kotlin-kapt’**不管用锻弓。
又添加
dependencies {
kapt ‘com.android.databinding:compiler:3.2.1’
}
kapt {
generateStubs = true
這些內(nèi)容,上傳蝌箍,發(fā)布Release青灼,還是報(bào)錯(cuò)失敗。
還嘗試了很多方法妓盲,也不管用杂拨。這是開(kāi)始出現(xiàn)了焦慮,緊張悯衬,胸悶弹沽,出冷汗。這個(gè)問(wèn)題這么難解決嗎?馬上準(zhǔn)備放棄了贷币,如果沒(méi)法發(fā)布成庫(kù)與大家一起分享击胜,那就自己獨(dú)享吧,但是還有點(diǎn)不甘心役纹。
最后偶摔,又直接在庫(kù)里添加databinding包,想著這次要是不成功沒(méi)就真的放棄了促脉。結(jié)果不出意料辰斋,真的沒(méi)成功,就在要放棄的那一刻瘸味,點(diǎn)開(kāi)log宫仗,報(bào)的錯(cuò)換了。
AndroidX Error: Both old and new data binding packages are available in dependencies. Make sure you’ve setup jettifier for any data binding dependencies and also set android.useAndroidx in your gradle.properties file.
心中又燃起了一點(diǎn)希望旁仿,重新整理心情藕夫,繼續(xù)調(diào)查。這個(gè)東西需要在libaray的build.gradle文件中設(shè)置一下枯冈,關(guān)鍵是怎么設(shè)置呢毅贮?又犯難了。找了好久尘奏,也沒(méi)找到設(shè)置方法滩褥。最后仔細(xì)比對(duì),沒(méi)有上傳gradle.properties炫加,因?yàn)檫@里面設(shè)置了這兩項(xiàng)瑰煎。
上傳,打Release俗孝,然后上JitPack網(wǎng)站看一下酒甸,build結(jié)果,哇赋铝,竟然成功了烘挫,心中真是萬(wàn)分喜悅,這種感覺(jué)也只有經(jīng)歷過(guò)折磨最后終于因不放棄的精神自己分析解決問(wèn)題的人才能體會(huì)到吧柬甥。
總結(jié)
經(jīng)過(guò)上面錯(cuò)誤的各種嘗試饮六,了解了JitPack在build時(shí),插件版本需要與Gradle版本對(duì)應(yīng)苛蒲。另外卤橄,除了library目錄下的文件,這之外的配置文件也是需要的臂外。
此時(shí)不由得想起一句詩(shī):
紙上得來(lái)終覺(jué)淺窟扑,絕知此事要躬行喇颁。
最后放上我封裝的庫(kù)Github地址,大家有興趣可以看一下嚎货。