升级后开机就提示“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]中文API(三)android.account包下的那些类
- Android 设置ImageView宽度固定,其高度按比例缩放适应
- [Android Pro] Android学习——在线查看android源代码的3种方式
- [Android Pro] ant 编译android工程
- Failed to fetch URl https://dl-ssl.google.com/android/repository/addo Android SDK更新以及ADT更新出现问题的解决办法
- android 减少图片出现oom错误
- android获取设备唯一标示
- android Universal Image Loader for Android 说明文档 (1)
- Android 开发之旅:短信的收发及在android模拟器之间实践(二)
- android 7.1 打开系统服务socket连接日志
- Android【报错】This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView)
- Android Studio 4.2.2的报错提示:Could not determine java version from ‘11.0.8‘. The project uses Gradle v
- Android 根据sensor重力感应 app横竖屏旋转
- Android 10.0关闭selinux权限
- Android framework之SystemUI的启动与定制化
- Android adb截屏命令
- 【Android Gradle 插件】自定义 Gradle 任务 ② ( 在 Terminal 面板中执行 gradlew task 命令显示所有任务 | 命令行输出所有任务 | 单独执行指定任务 )
- 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( android 闭包块配置 | AppExtension 扩展类型参考文档 )
- 【Android 逆向】代码调试器开发 ( 使用 NDK 中的 ndk-build + Android.mk 编译 Android 平台的代码调试器可执行应用 )
- 【Android 安全】DEX 加密 ( Proguard 混淆 | 将混淆后的报错信息转为原始报错信息 | retrace.bat 命令执行目录 | 暴露更少信息 )
- Android中配置JDK和SDK的环境变量
- Android FragmentActivity onActivityResult冲突问题
- Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)
- Android 使用 DownloadManager 管理系统下载任务的方法,android管理系统
- Android中用文件初始化sqlite 数据库(二)
- android sudio 执行的中文是乱码解决方式
- Android 解决EditText的afterTextChanged(Editable s)里面的s.equals(““)不执行