单例类中添加方法,应用patch时崩溃
- Dominant language
- C++
- Stars
- 7k
- Forks
- 1.6k
- PR merge metrics
- No merged PRs in 30d
Description
A类调用B类,B类是一个单例类,在B类中添加一个方法,然后在A类中调用B类中的新加方法,可以生成patch文件,但代码中addPatch后,崩溃,提示A类中找不到B_CF类。
Process: com.cubic.autohome, PID: 5511
01-27 14:45:55.506: E/AndroidRuntime(5511): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/aaa/bbb/business/hotfix/TestPatch_CF;
01-27 14:45:55.506: E/AndroidRuntime(5511): at com.aaa.bbb.MainActivity_CF.onCreate(MainActivity.java:472)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.app.Activity.performCreate(Activity.java:6021)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1114)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2461)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2570)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.app.ActivityThread.access$800(ActivityThread.java:167)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.os.Handler.dispatchMessage(Handler.java:111)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.os.Looper.loop(Looper.java:194)
01-27 14:45:55.506: E/AndroidRuntime(5511): at android.app.ActivityThread.main(ActivityThread.java:5588)
01-27 14:45:55.506: E/AndroidRuntime(5511): at java.lang.reflect.Method.invoke(Native Method)
01-27 14:45:55.506: E/AndroidRuntime(5511): at java.lang.reflect.Method.invoke(Method.java:372)
01-27 14:45:55.506: E/AndroidRuntime(5511): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
01-27 14:45:55.506: E/AndroidRuntime(5511): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)
01-27 14:45:55.506: E/AndroidRuntime(5511): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.aaa.bbb.business.hotfix.TestPatch_CF" on path: DexPathList[[zip file "/data/app/com.aaa.bbb-1/base.apk"],nativeLibraryDirectories=[/data/app/com.aaa.bbb-1/lib/arm, /vendor/lib, /system/lib]]
01-27 14:45:55.506: E/AndroidRuntime(5511): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
01-27 14:45:55.506: E/AndroidRuntime(5511): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-27 14:45:55.506: E/AndroidRuntime(5511): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
01-27 14:45:55.506: E/AndroidRuntime(5511): ... 14 more
01-27 14:45:55.506: E/AndroidRuntime(5511): Suppressed: java.lang.ClassNotFoundException: com.cubic.autohome.business.hotfix.TestPatch_CF
01-27 14:45:55.506: E/AndroidRuntime(5511): at java.lang.Class.classForName(Native Method)
01-27 14:45:55.506: E/AndroidRuntime(5511): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
01-27 14:45:55.506: E/AndroidRuntime(5511): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
01-27 14:45:55.506: E/AndroidRuntime(5511): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
01-27 14:45:55.506: E/AndroidRuntime(5511): ... 15 more
01-27 14:45:55.506: E/AndroidRuntime(5511): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the addPatch call and the MainActivity.java:472 stack-trace entry, then inspect how the singleton's generated TestPatch_CF class is produced and loaded. Reproduce the patch that adds a method to the singleton and verify that applying it no longer causes NoClassDefFoundError or ClassNotFoundException.
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
- 35/100