Meituan-Dianping / Meituan-Dianping/Robust
新增类实现接口,接口的方法名不会混淆,导致调用的时候报AbstractMethodError
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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