升级后开机就提示“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
, you need to override
SQLiteOpenHelperonDowngrade
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 然后就能够了--等着 一会就好了
最新文章
- LINK : fatal error LNK1104: 无法打开文件“gtestd.lib”
- Arcengine实现创建网络数据集札记(三)
- 权限框架 - shiro 自定义realm
- sql索引组织
- WP8异常错误:Error HRESULT E_FAIL has been returned from a call to a COM component.
- iOS 基础 第四天(0809)
- TCP传输小数据包效率问题(译自MSDN)
- iOS开发集成微信支付
- 从汇编看c++成员函数指针(三)
- bootstrap table笔记
- Android原生APP内分享
- Oracle ACL(Access Control List)
- Event Sourcing - ENode(一)
- 记录近期小改Apriori至MapReduce上的心得
- python学习总结笔记(一)
- ::在c++中什么意思
- selenium对百度进行登录注销
- $_POST和$GLOBALS['HTTP_RAW_POST_DATA'] 的区别
- php面试题2018
- Unix环境高级编程(二)文件和目录