Android NoClassDefFoundError发生的概率为0.3%

Android NoClassDefFoundError发生的概率为0.3%,android,Android,我们有一个应用程序,它拥有大量的用户,并且在一个监控平台上保持着粉碎定量。最近,NoClassDefError的比率比以前发生得更多(这次压榨约为0.3%) 堆栈打印如下: 1Caused by: java.lang.NoClassDefFoundError: com.company.framework.net.NetworkWorker 2 at adz.run(UserCenterDataLoad.java:70) 3 at com.company.framework.app.A

我们有一个应用程序,它拥有大量的用户,并且在一个监控平台上保持着粉碎定量。最近,NoClassDefError的比率比以前发生得更多(这次压榨约为0.3%)

堆栈打印如下:

1Caused by: java.lang.NoClassDefFoundError: com.company.framework.net.NetworkWorker
2    at adz.run(UserCenterDataLoad.java:70)
3    at com.company.framework.app.Application.d(Application.java:45)
4    at atv.run(Unknown Source)
5    at org.greenrobot.eventbus.util.AsyncExecutor$1.run(AsyncExecutor.java:116)
6    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
7    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
8    at java.lang.Thread.run(Thread.java:833)
main thread
formatted
1    at com.huawei.android.hwcontrol.HwWidgetFactoryImpl.newHwDialogStub(HwWidgetFactoryImpl.java:350)
2    at android.hwcontrol.HwWidgetFactory.getHwDialogStub(HwWidgetFactory.java:209)
3    at android.app.Dialog.<init>(Dialog.java:205)
4    at android.app.Dialog.<init>(Dialog.java:179)
5    at sp.<init>(BaseFullScreenDialog.java:30)
6    at sp.<init>(BaseFullScreenDialog.java:26)
7    at sr.<init>(HomeDialog.java:17)
8    at com.company.home.components.dialogs.HomeUpdateDialog.<init>(HomeUpdateDialog.java:58)
9    at com.company.bll.MainActivity.startHomeDialogAfterSplash(MainActivity.java:987)
10    at com.company.bll.MainActivity.d(MainActivity.java:439)
11    at com.company.bll.MainActivity.b(MainActivity.java:367)
12    at com.company.bll.MainActivity.onCreate(MainActivity.java:266)
13    at android.app.Activity.performCreate(Activity.java:6372)
14    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
15    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2432)
16    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539)
17    at android.app.ActivityThread.access$900(ActivityThread.java:168)
18    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378)
19    at android.os.Handler.dispatchMessage(Handler.java:102)
20    at android.os.Looper.loop(Looper.java:150)
21    at android.app.ActivityThread.main(ActivityThread.java:5665)
22    at java.lang.reflect.Method.invoke(Native Method)
23    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:822)
24    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)
1原因:java.lang.NoClassDefFoundError:com.company.framework.net.NetworkWorker
2在adz.run(UserCenterDataLoad.java:70)
3位于com.company.framework.app.Application.d(Application.java:45)
4在亚视运行(未知来源)
5位于org.greenrobot.eventbus.util.AsyncExecutor$1.run(AsyncExecutor.java:116)
6位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
7位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
运行(Thread.java:833)
主线
格式化
1位于com.huawei.android.hwcontrol.HwWidgetFactoryImpl.newHwDialogStub(HwWidgetFactoryImpl.java:350)
2位于android.hwcontrol.HwWidgetFactory.getHwDialogStub(HwWidgetFactory.java:209)
3在android.app.Dialog上。(Dialog.java:205)
4在android.app.Dialog上。(Dialog.java:179)
5在sp(BaseFullScreenDialog.java:30)
6在sp(BaseFullScreenDialog.java:26)
7 at sr.(HomeDialog.java:17)
8在com.company.home.components.dialogs.HomeUpdateDialog.(HomeUpdateDialog.java:58)
9在com.company.bll.MainActivity.startThomeDialoGafterSplash(MainActivity.java:987)
10位于com.company.bll.MainActivity.d(MainActivity.java:439)
11位于com.company.bll.MainActivity.b(MainActivity.java:367)
12位于com.company.bll.MainActivity.onCreate(MainActivity.java:266)
13位于android.app.Activity.performCreate(Activity.java:6372)
14位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
15位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2432)
16位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539)
17在android.app.ActivityThread.access$900(ActivityThread.java:168)
18位于android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378)
19位于android.os.Handler.dispatchMessage(Handler.java:102)
20在android.os.Looper.loop(Looper.java:150)
21位于android.app.ActivityThread.main(ActivityThread.java:5665)
22位于java.lang.reflect.Method.invoke(本机方法)
23在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:822)
24位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)
NetworkWorker类在任何地方都被用作网络操作的入口,这种挤兑在我们的测试团队中从未发生过。更重要的是,如果这个类丢失了,用户可能会到处崩溃

有趣的是,这种迷恋只发生在android 5.0或更高版本上


有人有这方面的经验吗?这种挤压很难修复,不仅因为我们无法复制它,而且每当我们为了测试它而更改某些内容时,我们都必须释放它并等待足够多的人使用它。

似乎这个类
NetworkWorker
在编译时可访问,但在运行时不可访问。确保中的应用程序可以访问此类runtime@nandsito我确信它在运行时是可以访问的。因为我们可以用手和测试人员很好地运行它。你的日志告诉你,只有少数用户在很短的时间内才会发生崩溃。。。测试应用程序和生产应用程序之间的区别是什么?它们是相同的。