alibaba / alibaba/AndFix

java.lang.NoSuchMethodError: No virtual method

Open
#322 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
7k
Forks
1.6k
PR merge metrics
No merged PRs in 30d

Description

在测试打补丁的过程中,发现如果修改的方法中有android 原生方法,如findViewById,startActivity等,打完补丁之后进入打补丁的Activity,就会报错,错误如下:
eg1;
java.lang.NoSuchMethodError: No virtual method startActivity(Landroid/content/Intent;)V in class Lcom/netease/gameforums/ui/activity/SettingActivity_CF; or its super classes (declaration of 'com.netease.gameforums.ui.activity.SettingActivity_CF' appears in /data/user/0/com.netease.gameforums/files/apatch/315_1484141581.apatch)
at com.netease.gameforums.ui.activity.SettingActivity_CF.j(Unknown Source)
at com.netease.gameforums.ui.activity.SettingActivity.onClick(Unknown Source)
at android.view.View.performClick(View.java:5273)
at android.view.View$PerformClick.run(View.java:21315)
at android.os.Handler.handleCallback(Handler.java:743)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5665)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:822)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)

eg2:
java.lang.NoSuchMethodError: No virtual method findViewById(I)Landroid/view/View; in class Lcom/netease/gameforums/ui/activity/SettingActivity_CF; or its super classes (declaration of 'com.netease.gameforums.ui.activity.SettingActivity_CF' appears in /data/user/0/com.netease.gameforums/files/apatch/315_1484141581.apatch)
at com.netease.gameforums.ui.activity.SettingActivity_CF.b(Unknown Source)
at com.netease.gameforums.ui.activity.SettingActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:6372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2432)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539)
at android.app.ActivityThread.access$900(ActivityThread.java:168)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5665)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:822)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)

暂时还没找到原因,有知道原因的同学麻烦说一下

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the patch-generation and application path for the patched SettingActivity_CF shown in the stack traces. Reproduce calls to Android methods such as startActivity and findViewById after patching, then inspect how inherited framework methods are represented in the patch. Done means the patched Activity can invoke these methods without NoSuchMethodError.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.