//错误信息1
FATAL EXCEPTION: main
Process: com.example.hzligan.sdk, PID: 13249
java.lang.NoSuchMethodError: No super method onCreate(Landroid/os/Bundle;)V in class Lcom/lofter/in/activity/LofterInBaseActivity; or its super classes (declaration of 'com.lofter.in.activity.LofterInBaseActivity' appears in /data/app/com.example.hzligan.sdk-1/base.apk)
at com.lofter.in.activity.HomeProductListActivity_CF.onCreate(HomeProductListActivity.java:54)
at android.app.Activity.performCreate(Activity.java:6036)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2422)
at android.app.ActivityThread.access$800(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5313)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1116)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:809)
//错误信息2
java.lang.IncompatibleClassChangeError: The method 'void com.lofter.in.activity.HomeProductListActivity_CF.andfixtest()' was expected to be of type direct but instead was found to be of type virtual (declaration of 'com.lofter.in.activity.HomeProductListActivity' appears in /data/app/com.example.hzligan.sdk-1/base.apk)
at com.lofter.in.activity.HomeProductListActivity.onCreate(HomeProductListActivity.java:76)
at android.app.Activity.performCreate(Activity.java:6423)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2451)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2569)
at android.app.ActivityThread.access$900(ActivityThread.java:160)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1409)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:935)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:726)
首先感谢阿里集团及项目作者开源了这个项目,在测试过程中,我发现在api19 dalvik虚拟机上可正常跑通流程。但是在 api 22 art虚拟机上在 loadPatch后,进入修改页面时报错。
错误复现
protect void onCreate(){ //如果在此修改一行代码,会报 java.lang.NoSuchMethodError andfixText(); }
protect void andfixTest(){ //在此修改一行代码,会报 java.lang.IncompatibleClassChangeError }
//错误信息1 FATAL EXCEPTION: main Process: com.example.hzligan.sdk, PID: 13249 java.lang.NoSuchMethodError: No super method onCreate(Landroid/os/Bundle;)V in class Lcom/lofter/in/activity/LofterInBaseActivity; or its super classes (declaration of 'com.lofter.in.activity.LofterInBaseActivity' appears in /data/app/com.example.hzligan.sdk-1/base.apk) at com.lofter.in.activity.HomeProductListActivity_CF.onCreate(HomeProductListActivity.java:54) at android.app.Activity.performCreate(Activity.java:6036) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2422) at android.app.ActivityThread.access$800(ActivityThread.java:159) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5313) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1116) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:809)
//错误信息2 java.lang.IncompatibleClassChangeError: The method 'void com.lofter.in.activity.HomeProductListActivity_CF.andfixtest()' was expected to be of type direct but instead was found to be of type virtual (declaration of 'com.lofter.in.activity.HomeProductListActivity' appears in /data/app/com.example.hzligan.sdk-1/base.apk) at com.lofter.in.activity.HomeProductListActivity.onCreate(HomeProductListActivity.java:76) at android.app.Activity.performCreate(Activity.java:6423) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2451) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2569) at android.app.ActivityThread.access$900(ActivityThread.java:160) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1409) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:935) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:726)