Android代码混淆后出现AbstractMethodError异常

qq_17770471 2016-11-03 06:04:00
log日志:
java.lang.AbstractMethodError: abstract method "android.view.WindowInsets android.view.View$OnApplyWindowInsetsListener.onApplyWindowInsets(android.view.View, android.view.WindowInsets)"
at android.view.View.dispatchApplyWindowInsets(View.java:7816)
at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:6647)
at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:6651)
at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:6651)
at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:6651)
at android.view.ViewRootImpl.dispatchApplyInsets(ViewRootImpl.java:1662)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1783)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1487)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7450)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)
at android.view.Choreographer.doCallbacks(Choreographer.java:695)
at android.view.Choreographer.doFrame(Choreographer.java:631)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

问题描述:
项目中使用了表情包
https://github.com/w446108264/XhsEmoticonsKeyboard(emoji工具地址)
,代码混淆之后就会出现上述问题,就是在弹出表情键盘得时候奔溃,加上-keep public class还是会出现这个问题,问下大家在开发时使用emoji的时候有碰到过这个问题吗?要怎么解决呢
...全文
1654 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
追风筝的孩子 2018-10-26
  • 打赏
  • 举报
回复
用的是低版本的sdk吧,这个方法版本比较高,所以混淆的时候认为这个方法没被开发者调用(实际上是被系统回调),所以就直接删掉了。

上面是我猜的。
MPSong 2018-10-25
  • 打赏
  • 举报
回复
在你的model层 创建一个新的对象继承android.view.View.OnApplyWindowInsetsListener , 然后在proguard-rules.pro中添加-keep class [PackageName].XX{*;}, XX这里指的是新的对象。
shuishuixiaoping 2017-07-27
  • 打赏
  • 举报
回复
楼楼解决了没?

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧