为何Android 12发布构建中出现OnChecksumsReadyListener抽象方法错误?
Android 12发布构建中AbstractMethodError异常分析与解决
异常信息
exception.class.missing._Unknown_: java.lang.AbstractMethodError abstract method "void android.content.pm.PackageManager$OnChecksumsReadyListener.onChecksumsReady(java.util.List)" at android.app.ApplicationPackageManager$2.onChecksumsReady (ApplicationPackageManager.java:969) at android.content.pm.IOnChecksumsReadyListener$Stub.onTransact (IOnChecksumsReadyListener.java:87) at android.os.Binder.execTransactInternal (Binder.java:1184) at android.os.Binder.execTransact (Binder.java:1143)
异常原因
Android 12(API 31)对PackageManager.OnChecksumsReadyListener接口做了变更,新增了一个接收java.util.List参数的onChecksumsReady抽象方法。如果你的代码或依赖库中实现了这个接口但未覆盖该新方法,系统调用时会因找不到对应实现抛出AbstractMethodError。
解决方法
- 自定义实现该接口时,添加新方法的覆盖:
@Override public void onChecksumsReady(List<Checksum> checksums) { // 可根据需求添加逻辑,暂时不需要可留空 } - 若问题来自第三方依赖,检查该库是否已适配Android 12,升级至最新兼容版本。
- 确保项目的
compileSdkVersion和targetSdkVersion设置为31或更高,同时做好向下兼容处理,避免在低版本系统中触发该方法调用。
内容的提问来源于stack exchange,提问作者Bhoomika Patel
相关产品推荐
相关产品推荐

