天天看點

Caused by: java.lang.IllegalStateException: package not installed?

- ::: E/AndroidRuntime(): FATAL EXCEPTION: main
- ::: E/AndroidRuntime(): Process: com.sample.calendar, PID: 
- ::: E/AndroidRuntime(): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.IllegalStateException: Unable to get package info for com.sample.calendar; is package not installed?
- ::: E/AndroidRuntime():     at android.app.LoadedApk.makeApplication(LoadedApk.java:)
- ::: E/AndroidRuntime():     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:)
- ::: E/AndroidRuntime():     at android.app.ActivityThread.access$1500(ActivityThread.java:)
- ::: E/AndroidRuntime():     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:)
- ::: E/AndroidRuntime():     at android.os.Handler.dispatchMessage(Handler.java:)
- ::: E/AndroidRuntime():     at android.os.Looper.loop(Looper.java:)
- ::: E/AndroidRuntime():     at android.app.ActivityThread.main(ActivityThread.java:)
- ::: E/AndroidRuntime():     at java.lang.reflect.Method.invokeNative(Native Method)
- ::: E/AndroidRuntime():     at java.lang.reflect.Method.invoke(Method.java:)
- ::: E/AndroidRuntime():     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:)
- ::: E/AndroidRuntime():     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:)
- ::: E/AndroidRuntime():     at dalvik.system.NativeStart.main(Native Method)
- ::: E/AndroidRuntime(): Caused by: java.lang.IllegalStateException: Unable to get package info for com.sample.calendar; is package not installed?
- ::: E/AndroidRuntime():     at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:)
- ::: E/AndroidRuntime():     at android.app.LoadedApk.getClassLoader(LoadedApk.java:)
- ::: E/AndroidRuntime():     at android.app.LoadedApk.makeApplication(LoadedApk.java:)
- ::: E/AndroidRuntime():     ...  more
           

這個問題一般發生在更新APP時候。當使用者打開app,正在浏覽時候,然後點選更新app,app還在做一些操作比如通路網絡,讀寫db,讀寫file,處理推送等情況,這時候安裝包下載下傳完成後覆寫安裝,就有可能出現這個錯誤。(如果是在背景未啟動app更新就沒這個問題)

這個問題對使用者影響不是很大,畢竟更新完成也是要退出app嘛,隻是會彈出一個錯誤提示框有點不友好,

stackoverflow上有解答把操作放到線程去做,但是這個問題也不知道在何時,何種情況下産生,不能控制更新時候使用者的行為,不太好處理