代码之家  ›  专栏  ›  技术社区  ›  Mike Keskinov

Android 8.1(Nexus)启动速度慢。无法为SetValues初始化类

  •  1
  • Mike Keskinov  · 技术社区  · 8 年前

    我最近注意到我的Android应用程序启动时间太长。第一个屏幕显示出来,但在Nexus(Android 8.1)上实际启动应用程序需要几秒钟的时间。Google Play发布前报告还显示了启动时间1-8秒(取决于设备)。

    我在调试会话中查看了LogCat,并注意到大量如下消息。这只是一小部分(可能是其中的15%左右):

    05-22 12:57:50.752 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:50.759 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:50.789 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:50.854 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:50.856 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:50.898 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:50.900 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:50.913 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:50.958 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:50.960 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:51.032 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:51.036 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:51.055 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:51.125 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:51.128 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:51.169 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:51.171 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:51.184 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:51.231 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:51.233 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:51.279 2751-2751/foo W/zygote64: Verification of void myMainActivity.onCreate(android.os.Bundle) took 559.288ms
    05-22 12:57:51.315 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:51.317 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:51.330 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:51.401 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:51.403 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:51.445 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:51.448 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:51.461 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:51.509 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:51.511 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:51.581 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:51.584 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:51.597 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:51.609 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$40>
    05-22 12:57:51.669 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:51.671 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:51.712 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:51.714 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:51.727 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:51.733 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$40>
    05-22 12:57:51.774 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:51.776 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:51.814 2751-2751/foo W/zygote64: Verification of void myMainActivity.XXX(yy.EventType, org.json.JSONObject) took 526.959ms
    05-22 12:57:51.853 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:51.856 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:51.870 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:51.876 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$40>
    05-22 12:57:51.886 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$35>
    05-22 12:57:51.951 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:51.954 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:51.996 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$38>
    05-22 12:57:51.998 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$39>
    05-22 12:57:52.012 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$1>
    05-22 12:57:52.017 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$40>
    05-22 12:57:52.020 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$35>
    05-22 12:57:52.066 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$21>
    05-22 12:57:52.069 2751-2763/foo W/zygote64: Not able to initialize class for SetValues: java.lang.Class<myMainActivity$22>
    05-22 12:57:52.129 2751-2751/foo W/zygote64: Verification of void myMainActivity.shareApp() took 308.999ms
    

    这是怎么回事?为什么花了这么长时间?什么是验证?“无法初始化类”之类的大量消息意味着什么?我的活动名称后的$XX数字是多少?

    请注意,几秒钟后,应用程序将毫无问题地启动。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Matt39    8 年前

    这是一个即时运行错误。清理项目以解决它。