升级后开机就提示“android.process.acore”停止执行 --分析 解决方式

人生处万类,知识最为贤。这篇文章主要讲述升级后开机就提示“android.process.acore”停止执行 --分析 解决方式相关的知识,希望能为你提供帮助。
OTA升级的,升级引发的全部问题都是能够解释的,有的能解决,有的不能解决。


一个项目报了这个问题。
升级后开机就提示“android.process.acore”停止执行 


抓取 adb log 看到了 以下的这个 fatal   的log 


11-06 14:40:33.633   3827   3827 E AndroidRuntime: FATAL EXCEPTION: main
11-06 14:40:33.633   3827   3827 E AndroidRuntime: Process: android.process.acore, PID: 3827
11-06 14:40:33.633   3827   3827 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.android.providers.contacts.CallLogProvider: android.database.sqlite.SQLiteException: Can‘t downgrade database from version 851 to 850
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5043)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:4614)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4547)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at android.app.ActivityThread.access$1500(ActivityThread.java:151)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:110)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at android.os.Looper.loop(Looper.java:193)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5324)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:515)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
11-06 14:40:33.633   3827   3827 E AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)



从log能够看到   om.android.providers.contacts 联系人模块的数据库出问题了。问题的解决办法是  Can‘t downgrade database from version 851 to 850 。就是说。无法从高级版本号的数据库降级到低级版本号的数据库。这个应该是android 的限制导致。


google 一下 为什么呢? 
stackvoerflow 有人解释了一下 ,假设你继承以下     onDowngrade 就能够了。可是是联系人是不能够这样做的吧~~
  you are using  Android SQLiteOpenHelper, you need to override  onDowngrade  if you want to be able to run your application with a database on the device with a higher version than your code can handle.
You should care about this " Database Version thing" if ever your database schema is ever going to change (and in general, there is good chance it would).



解决方法: 先备份联系人数据。
(最好是网络备份,全然备份db的话可能没有效果)
方法一 
1设置-应用程序管理--联系人--清空数据   2  设置-应用程序管理--拨号盘-清空数据


方法二、 设置-恢复出厂设置 --清空全部数据。然后自己主动重新启动到recovery 然后就能够了--等着 一会就好了
【升级后开机就提示“android.process.acore”停止执行 --分析 解决方式】


























    推荐阅读