Skip to content

[BUG] shizuku ITaskStackListener AbstractMethodError #941

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
iodoboi opened this issue Apr 5, 2025 · 18 comments
Closed

[BUG] shizuku ITaskStackListener AbstractMethodError #941

iodoboi opened this issue Apr 5, 2025 · 18 comments

Comments

@iodoboi
Copy link

iodoboi commented Apr 5, 2025

日志文件

log-1743864108454.zip

BUG描述(文字/截图/视频)

[BUG] 三星S23ultra,one5.1版android13系统老是闪退,清除数据或者重新安装问题依旧存在,软件是最新版本,具体表现如下。图显示,停止运行

Image

期望行为(文字/截图/视频)

主要解决闪退问题

实际行为(文字/截图/视频)

闪退

@Jusu2-teach
Copy link

s22 ui6.1版本一模一样

@lisonge
Copy link
Member

lisonge commented Apr 5, 2025

release.zip

试试这个版本呢?

@iodoboi
Copy link
Author

iodoboi commented Apr 5, 2025

发布版本

试试这个版本吗?

好的我试试

@iodoboi
Copy link
Author

iodoboi commented Apr 5, 2025

发布版本

试试这个版本吗?

谢谢这个版本正常了👍👍👍

@lisonge
Copy link
Member

lisonge commented Apr 5, 2025

https://github.com/gkd-kit/gkd/releases/tag/v1.10.1

@Future23365
Copy link

https://github.com/gkd-kit/gkd/releases/tag/v1.10.1

oneui 7.0 android15 ,今天刚刚从1.9.3更新到最新版本,还是会出现这个问题。

log-1743921752091.zip

@lisonge
Copy link
Member

lisonge commented Apr 6, 2025

是通过 shizuku 调用 hidden api 的问题,Samsung OneUi 对系统有魔改导致 api 调用失败

@lisonge
Copy link
Member

lisonge commented Apr 6, 2025

release.zip

使用这个版本呢?

@Future23365
Copy link

release.zip

使用这个版本呢?

这个版本可以了!未出现闪退情况。

@lisonge lisonge reopened this Apr 6, 2025
@lisonge lisonge changed the title [BUG] 三星S23ultra,one5.1版android13系统老是闪退,清除数据或者重新安装问题依旧存在 [BUG] 三星S23ultra,one5.1版android13系统使用 shizuku 后闪退 Apr 6, 2025
@lisonge lisonge changed the title [BUG] 三星S23ultra,one5.1版android13系统使用 shizuku 后闪退 [BUG] shizuku ITaskStackListener AbstractMethodError Apr 7, 2025
@RikkaW
Copy link

RikkaW commented Apr 7, 2025

虽然但是但是虽然
但是是不是 像这样做是不是就不用考虑你加了这个他改了那个

https://github.com/RikkaW/HiddenApi/blob/master/compat/src/main/java/rikka/hidden/compat/adapter/TaskStackListenerAdapter.java

不碰快两年了 我不知道(

@lisonge

@lisonge
Copy link
Member

lisonge commented Apr 7, 2025

@RikkaW

感谢评论,关于这个错误,我的个人理解是不同设备的内置的 ITaskStackListener 不一样

传入的 ITaskStackListener 的子类被会在某些时刻被调用 listener.xxx() ,我的这个 class 没有实现这个 xxx 因此会 AbstractMethodError

我的小米设备不会出现这种调用,因此没有发现报错,而他们的三星设备出现了这种调用,因此会报错

那些增加的方法也是从 https://github.com/Nitsuya/AADisplay/blob/6e38192e4e416fd9bebc2ee081409ea330b8aed7/lib-stub/src/main/java/android/app/ITaskStackListener.java#L38 参考

目前是解决方式是先反射获取当前设备的 android.app.ITaskStackListener 的未实现的方法列表

然后和已实现的方法列表比较,如果存在未实现的方法就提示用户反馈日志适配并且禁止部分功能

另外不好意思我没看懂你的 TaskStackListenerAdapter 有什么区别?是在于 onTransact 方法吗?


我对 shizuku 的原理理解并不熟悉,不知道这样是否正确

@RikkaW
Copy link

RikkaW commented Apr 7, 2025

根据记忆 ITaskStackListener.Stub 的 onTransact 里面是 switch transaction code 然后去调用那些方法。
那么就可以直接在自己的 onTransact 里 try 一下 super.onTransact,本来的 AbstractMethodError 会被 catch。因为自己不用关心那些增添或修改的方法的结果,所以可以这么做.

@lisonge
Copy link
Member

lisonge commented Apr 7, 2025

懂了,本质上是 ipc 调用,只需要 catch 这个过程即可

@7161457
Copy link

7161457 commented Apr 8, 2025

v1.10.1,三星s25ultra,闪退

@lisonge lisonge marked this as a duplicate of #957 Apr 11, 2025
@gaobeing233
Copy link

release.zip

使用这个版本呢?

此版本依然有闪退情况,附log文件
多发生于打开app时,但触发app不定,抖音大概率触发

log-1744364511955.zip

@lisonge lisonge marked this as a duplicate of #962 Apr 14, 2025
@lisonge
Copy link
Member

lisonge commented Apr 14, 2025

@CuSO4with5H2O
Copy link

https://github.com/gkd-kit/gkd/releases/tag/v1.10.2-beta.1

我这个就是新的beta1才有的bug,之前没有,并且我这里不会闪退,只是无法授权,和之前反馈的不一样吧

@lisonge lisonge marked this as not a duplicate of #962 Apr 14, 2025
@lisonge
Copy link
Member

lisonge commented Apr 27, 2025

@lisonge lisonge closed this as completed Apr 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants