代码之家  ›  专栏  ›  技术社区  ›  Terry

包更新时出现IllegalStateException

  •  3
  • Terry  · 技术社区  · 7 年前

    在新的应用程序版本中,我删除了 Adobe Creative SDK 图书馆。
    如果我在更新前一个版本时理解正确,应用程序就会崩溃。具有讽刺意味的是,崩溃是由Adobe Creative SDK库引起的。

    崩溃堆栈跟踪:

    java.lang.RuntimeException: 
       at android.app.ActivityThread.handleReceiver (ActivityThread.java:3705)
       at android.app.ActivityThread.-wrap18 (Unknown Source)
       at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1979)
       at android.os.Handler.dispatchMessage (Handler.java:108)
       at android.os.Looper.loop (Looper.java:166)
       at android.app.ActivityThread.main (ActivityThread.java:7425)
       at java.lang.reflect.Method.invoke (Native Method)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)
       at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)
    Caused by: java.lang.IllegalStateException: 
       at android.app.ContextImpl.startServiceCommon (ContextImpl.java:1701)
       at android.app.ContextImpl.startService (ContextImpl.java:1657)
       at android.content.ContextWrapper.startService (ContextWrapper.java:644)
       at android.content.ContextWrapper.startService (ContextWrapper.java:644)
    +> at com.adobe.creativesdk.aviary.internal.cds.CdsReceiver.handlePackageReplaced (CdsReceiver.java:123)
    |  at com.adobe.creativesdk.aviary.internal.cds.CdsReceiver.onReceive (CdsReceiver.java:103)
    |  at android.app.ActivityThread.handleReceiver (ActivityThread.java:3695)
    |
    +––– this causes the crash
    

    在我开始全面推广之前,有什么办法可以修复这样的崩溃吗?

    不幸的是,我不能在我的测试设备上复制它。

    同样,Android 8.0和8.1似乎也会出现这种情况。

    非常感谢您的帮助!如果你还想看什么,告诉我,我把它加在这里。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Nick Fortescue    7 年前

    如果旧版本的应用程序崩溃时,应用程序将被取代,我不会太担心它。无论如何,该应用程序将在替换过程中停止。我怀疑creativesdk的开发人员在他们的代码中有一个bug,因为他们认为他们的包永远不会被删除。唯一的解决办法就是鼓励当时的Adobe开发人员去解决这个问题,我怀疑他们不太可能解决一个让他们的产品更容易迁移的bug。