-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Open
Description
问题描述
在OPPO的机器上出现崩溃,而且只在子进程中出现,主要集中在Android 13、14、15的机器上。
java.lang.NoSuchMethodError: No static method b()Ljava/lang/String; in class La4/b; or its super classes (declaration of 'a4.b' appears in base.apk)
at com.example.business.stat.UtStatAgent$UtStatAgentImpl.getUtPublicArgs(UtStatAgent.java:460)
at com.example.business.stat.UtStatAgent$UtStatAgentImpl.utStatCustom(UtStatAgent.java:401)
at com.example.business.stat.UtStatAgent.lambda$utStatCustom$11(UtStatAgent.java:153)
崩溃中提到的 b()Ljava/lang/String 是部署包中的方法:
这个方法在未部署的base apk中是另外一个名称:
看加载dex的情况是UtStatAgent使用了动态部署后的新dex,但依赖的a4.b这类又从base apk中寻找。
这里顺便解释一下为什么同一个方法,前后名称不一致的原因:升级AGP 7.4.2 + R8后,使用applymapping 打patch的时候,出现了很多 java.lang.AbstractMethodError 的错误,可能是R8对applymapping存在bug,尝试过一些方法无法解决,因此禁用了applymapping,缺点是打包动态部署产物体积变大。
使用的tinker版本
最早使用 1.9.14.25 存在问题,升级到v1.9.15.1 依旧。
Metadata
Metadata
Assignees
Labels
No labels