java.lang.NoSuchMethodError: No virtual method
- 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