天天看点

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上有解答把操作放到线程去做,但是这个问题也不知道在何时,何种情况下产生,不能控制升级时候用户的行为,不太好处理