gpt4 book ai didi

android.database.sqlite.SQLiteException : Can't downgrade database from version 58 to 55 for android sms database

转载 作者:IT王子 更新时间:2023-10-29 06:26:37 27 4
gpt4 key购买 nike

当我的 android 应用程序尝试读取 android 短信数据库时,我遇到了这个崩溃。读取android短信数据库的代码类似于下面的代码 fragment :

String SMS_URI = "content://sms/"; Uri uri = Uri.parse(SMS_URI);游标 cursor = myContext.getContentResolver().query(uri, null, null, null, null);

这是我的应用程序与 android 短信数据库交互的唯一地方。正在为短信数据库抛出降级错误。

我遇到以下崩溃:

 java.lang.RuntimeException: android.database.sqlite.SQLiteException: Can't downgrade database from version 58 to 55
at to.talk.utils.ExceptionThrowingFutureTask$1.run(ExceptionThrowingFutureTask.java:32)
at java.lang.Thread.run(Thread.java:856) Caused by: java.util.concurrent.ExecutionException: android.database.sqlite.SQLiteException: Can't downgrade database from version 58 to 55
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:223)
at java.util.concurrent.FutureTask.get(FutureTask.java:82)
at to.talk.utils.ExceptionThrowingFutureTask.done(ExceptionThrowingFutureTask.java:22)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
... 1 more Caused by: android.database.sqlite.SQLiteException: Can't downgrade database from version 58 to 55
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:184)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:366)
at android.content.ContentResolver.query(ContentResolver.java:372)
at android.content.ContentResolver.query(ContentResolver.java:315)
at to.talk.app.features.growth.SMSReader.readSmsAndGetInviteList(SMSReader.java:39)

该应用程序大部分时间都运行良好,在本地对我来说从未崩溃,但对某些用户来说它会崩溃。在它崩溃的设备\环境中没有明显的模式。如果有人可以帮助我,我将不胜感激。

我发现了一个类似的崩溃 here .

尽管在这种情况下,它可能是他们自己的数据库之一,而我的数据库是 android 短信数据库。

最佳答案

我可能会迟到,但这是我的 2 美分。

您正在使用的提供商(设备的短信提供商)读取和写入您(作为第 3 方应用程序)无法访问的数据库。它充当你们两个之间的媒介。

看起来出现此异常的设备已更新其短信数据库(或更准确地说是降级)。这可能通过 Android 版本升级(通过 OEM)或在拥有 root 访问权限时不小心更改内容而发生。

有时,当设备获得 Android 操作系统更新时,某些地方会出错。要么是因为安装错误,要么是因为更新有问题。在这种情况下,有人搞砸了短信提供商。

最重要的是,您(作为第 3 部分应用程序)对此无能为力,异常(exception)情况是使用 try-catches 包装您的所有短信提供商查询)。使用同一提供商的所有应用都应该面临与您完全相同的问题。

关于android.database.sqlite.SQLiteException : Can't downgrade database from version 58 to 55 for android sms database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16669499/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com