升级后App中的VerifyError

Dan*_*Lew 5 android

我遇到了一个小问题,希望有人能给我一些启示。

有时,当用户从市场上更新我的应用程序(从一个版本到另一个版本)时,他们在运行该应用程序时会收到一个VerifyError。它发生在随机类别中;您可以使用该应用程序的一部分,然后在该应用程序中转到其他“活动”会使其爆炸。这只会发生一次。一旦Dalvik将其从系统中删除,它便再也不会发生。

由于它每次更新仅发生一次(大部分时间,一次也不发生),因此它确实是一个小问题,但是我认为它对我的应用程序影响不大,因此,如果有人有任何很棒的想法。

堆栈跟踪似乎没有帮助,因为它们总是发生在不同的地方(这进一步使我感到困惑)。这是一个例子:

java.lang.VerifyError: com.mypackage.myapp.package.SomeClass
    at java.lang.Class.newInstanceImpl(Native Method)
    at java.lang.Class.newInstance(Class.java:1472)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1097)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2371)
    at android.app.ActivityThread.access$1800(ActivityThread.java:118)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1759)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:4077)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

Dan*_*Lew 0

事实证明我遇到了这个错误:http://code.google.com/p/android/issues/detail ?id=2886

问题是,如果小部件接收器在应用程序之前加载,则在同一进程中访问 Google Maps API 的任何尝试都会失败。这种情况只发生在 Android 1.5 中,但每次有人升级应用程序时都会发生这种情况。

解决方案是将接收器置于不同的进程中。