在Android自定義注解開發的文章中,我遇到了一個很嚴重的問題,就是自定義的注解解析文件IActivityCompiler,無法在編譯時生成映射文件!
最后經過多番查找文檔,終于找到了問題的原因:
1、gradle和gradle tools版本問題導致無法生成。
解決方案:切換gradle和tools的版本。
高版本的gradle無法自動生成apt的映射文件,因為MATA-INF無法生成:
這個文件是對@AutoService注解的映射。
至于為什么無法生成MATA-INF文件,原因我暫時也沒有搞懂。
2、注解在Kotlin文件上無法被識別的問題。(已解決)
解決方案:避免在Kotlin類上使用??。
因為項目是混合開發,我在一個用Kotlin文件寫的Activity類上使用注解,卻一直無法生成映射文件:
這個地方花費了我大量的時間,一直以為是我環境或者gradle版本的問題,一直嘗試多次之后才發現在Java的類上可以正常的生成映射文件,但是在Kotlin類上卻不能!這對于往kotlin上遷移的項目,是一個不小的阻礙,原因展示不明。
寫在最后:雖然最后解決了問題,但是導致問題的原因一個也沒有找到,心里不免有些遺憾,由于工作較忙,只能等到以后有時間再好好研究研究了,如果有知道原因的朋友,還望不吝賜教,先在這里謝過了Thanks?(?ω?)?~