开发Shizuku API时,编译生成的APK在调用Shizuku.bindUserService时无任何响应且无报错,排查近5个小时:

由于kotlin转java时的疏忽,对于顶层UserService类的声明使用了类似class UserService extends IUserService.Stub,不同于kotlin,java最顶层类默认访问修饰符为包级私有(package-private),由于太过小众由于默认整包内都可访问到,因此项目内没有任何报错信息。然而,系统logcat也是空空如也,更加蛋疼的是,覆盖安装修改后的apk不会改变原有的结果,必须卸载重装才可以

在没有任何日志的情况下,经历如此痛苦的debug,充分暴露了技术的欠缺(平时注重分包,即可避免这类问题)与java的傻逼,未来还有很长的路要走