Meituan-Dianping / Meituan-Dianping/Robust

新增类实现接口,接口的方法名不会混淆,导致调用的时候报AbstractMethodError

Open
#235 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
4.5k
Forks
806
PR merge metrics
No merged PRs in 30d

Description

报错日志:
java.lang.AbstractMethodError: abstract method "void com.husor.android.image.sticker.fragment.StickerChooseFragment$b.a(com.husor.android.image.sticker.fragment.StickerChooseFragment, com.husor.android.image.sticker.model.Sticker, java.util.List)"

===================================================================
未经混淆的接口
public interface TuStickerChooseFragmentDelegate
{
void onTuStickerChooseFragmentSelected(StickerChooseFragment fragment, Sticker selectedStickerData, List stickerGroup);
}

===================================================================
patch包新增的class
@Add
public class StickerHomeChooseDelegate
implements StickerChooseFragment.b
{
public void onTuStickerChooseFragmentSelected(StickerChooseFragment paramStickerChooseFragment, Sticker paramSticker, List paramList)
{
// .......
}
}

可以看到新增的类只映射了混淆以后类名,没有映射方法名

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the TuStickerChooseFragmentDelegate interface and the @Add StickerHomeChooseDelegate example in the issue, then trace how added classes and implemented methods are mapped during patch generation. Reproduce the AbstractMethodError and verify that the generated patch maps both the implementing class and its interface method name.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.