集成hibeaver的血泪史 -- Ambiguous method overloading for method java.io.File#<init>

项目中埋点的位置越来越多,就想着搞下无埋点数据统计。

调研了一圈,基本上确定,日志收集+插桩。

新起个项目,日志收集竟然又用到了我刚毕业第一年做的项目。

把里面日志收集的类修修补补挪过来,调试成功,打个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一时爽,手残死半年。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值