集成hibeaver的血淚史 -- Ambiguous method overloading for method java.io.File#

項目中埋點的位置越來越多,就想着搞下無埋點數據統計。

調研了一圈,基本上確定,日誌收集+插樁。

新起個項目,日誌收集竟然又用到了我剛畢業第一年做的項目。

把裏面日誌收集的類修修補補挪過來,調試成功,打個jar包扔項目裏。

至於日誌的緩存也是現成的,隨用隨拿。

下面就是插樁模塊,原理基本上就是在編譯期,利用asm修改原有的class文件。

asm完全沒了解,看了些介紹就是可以修改和增強既有類,訪問類裏的字段和方法做修改。

插樁就是找到相應的方法在裏面添加我們的代碼就可以了。

找了個現成的庫,https://github.com/BryanSharp/hibeaver,集成簡單,可以調試。

又考慮到安全,就決定自己去實現下,直接copy過來,自己修改多好啊。

修改成自己的moudle名後,生成jar,在app moudle下引用進來。build後一直報

 

java.io.File#<init>有歧義的方法Ambiguous method overloading for method java.io.File#<init>

WHAT FUCK ! ! !

這不就是插樁找方法找到File類構造方法裏去了嗎,各種全匹配類名,增刪瞎改都不行,就是死都卡在這。

最後在 心木 小夥伴的旁敲側引下,輸入命令./gradlew build --stacktrace

運行後直接把報錯位置給定位到了。

氣死我了 少打了後面的Dir導致new File()報錯

 copy一時爽,手殘死半年。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章