整合hibeaver的血淚史 -- Ambiguous method overloading for method java.io.File#<init>
專案中埋點的位置越來越多,就想著搞下無埋點資料統計。
調研了一圈,基本上確定,日誌收集+插樁。
新起個專案,日誌收集他媽的竟然又用到了我剛畢業第一年做的專案。
把裡面日誌收集的類修修補補挪過來,除錯成功,打個jar包扔專案裡,可以完美實現bugly初始化,testJavaCrash()功能。
至於日誌的快取也是他媽的現成的,隨用隨拿。
下面就是插樁模組,原理基本上就是在編譯期,利用asm修改生成的class檔案。
asm完全沒了解,看了些介紹就是可以修改和增強既有類,訪問類裡的欄位和方法做修改。
插樁就是找到相應的方法在裡面新增我們的程式碼就可以了。
找了個現成的庫,
又考慮到安全,就決定自己去實現下,直接copy過來,自己修改多好啊。
修改成自己的moudle名後,生成jar,在app moudle下引用進來。build後一直報
java.io.File#<init>有歧義的方法Ambiguous method overloading for method java.io.File#<init>
WHAT FUCK ! ! !
這不就是插樁找方法找到File類構造方法裡去了嗎,各種全匹配類名,增刪瞎改都不行,就是死都卡在這。
給hibeaver作者發郵件,大神也不回我,可能百度最近很忙吧。
各種加埋點群,沒人吊我。
痛苦啊,一天天就這樣過去了。
最後終於在 心木 小夥伴的旁敲側引下,我敲了下./gradlew build --stacktrace
媽的,這個命令每次報錯都擺在我面前我從來都正眼看過
執行後直接把報錯位置給定位到了。
氣死我了 少打了後面的Dir導致new File()報錯
copy一時爽,手殘死半年。