Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android.database.sqlite.SQLiteException:Can';t将android sms数据库的数据库从版本58降级到55_Android_Database_Sqlite_Crash - Fatal编程技术网

android.database.sqlite.SQLiteException:Can';t将android sms数据库的数据库从版本58降级到55

android.database.sqlite.SQLiteException:Can';t将android sms数据库的数据库从版本58降级到55,android,database,sqlite,crash,Android,Database,Sqlite,Crash,当我的android应用程序试图读取android短信数据库时,我遇到了这个崩溃。读取android sms数据库的代码类似于以下代码片段: 字符串SMS\u URI=”content://sms/"; Uri=Uri.parse(SMS_Uri); Cursor Cursor=myContext.getContentResolver().query(uri,null,null,null,null) 这是我的应用程序与android sms数据库交互的唯一地方。正在为sms数据库引发降级错误 我

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

字符串SMS\u URI=”content://sms/";
Uri=Uri.parse(SMS_Uri);
Cursor Cursor=myContext.getContentResolver().query(uri,null,null,null,null)

这是我的应用程序与android sms数据库交互的唯一地方。正在为sms数据库引发降级错误

我得到以下崩溃:

 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)
该应用程序在大多数情况下运行良好,对我来说不会在本地崩溃,但对一些用户来说会崩溃。在其崩溃的设备\环境中没有明显的模式。如果有人能帮我,我会非常感激的

我在这里发现了类似的碰撞:

[https://crash-stats.mozilla.com/report/list?signature=android.database.sqlite.SQLiteException%3A%20Can%27%27t%20downgrade%20database%20from%20version%2033%20to%2032%20at%20android.database.DatabaseUtils.readExceptionFromParcel%28DatabaseUtils.java%29][1]
虽然在这种情况下,它可能是他们自己的数据库,而不是我的安卓手机短信数据库。

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

您使用的提供商(设备的sms提供商)读取和写入您(作为第三方应用)无权访问的数据库。它是你们之间的媒介

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

有时候,当一台设备得到安卓操作系统更新时,有些东西会出问题。要么是因为安装错误,要么是因为更新有缺陷。在这种情况下,有人搞砸了短信提供商

底线是,你(作为第三方应用)对此无能为力,除了用try-catch包装你所有的短信提供商查询)。所有使用同一提供商的应用程序都应该面临与您完全相同的问题。

原因相同吗?