android - 从收件箱中删除短信时出现奇怪的异常

标签 android sqlite exception sms

我正在写一个项目来从收件箱中删除短信。大多数时候它工作正常,但有时它会给出奇怪的异常。这是异常的堆栈跟踪:

01-23 16:41:20.016: E/AndroidRuntime(7328): FATAL EXCEPTION: main
01-23 16:41:20.016: E/AndroidRuntime(7328): android.database.sqlite.SQLiteException: error code 14: unable to open database file
01-23 16:41:20.016: E/AndroidRuntime(7328):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:146)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at android.content.ContentProviderProxy.delete(ContentProviderNative.java:503)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at android.content.ContentResolver.delete(ContentResolver.java:723)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at com.velosys.smsManager.Database.DatabaseHandlerRule.DeleteMessagesFromInbox(DatabaseHandlerRule.java:1441)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at com.velosys.smsManager.Database.DatabaseHandlerRule.deleteContactOnBasisOfTime(DatabaseHandlerRule.java:1375)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at com.velosys.smsManager.Activities.SplashActivity$2.run(SplashActivity.java:132)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at android.os.Handler.handleCallback(Handler.java:618)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at android.os.Handler.dispatchMessage(Handler.java:123)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at android.os.Looper.loop(SourceFile:351)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at android.app.ActivityThread.main(ActivityThread.java:3850)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at java.lang.reflect.Method.invokeNative(Native Method)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at java.lang.reflect.Method.invoke(Method.java:538)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
01-23 16:41:20.016: E/AndroidRuntime(7328):     at dalvik.system.NativeStart.main(Native Method)

这是我从收件箱中删除短信并获取异常的行:

l_contentResolver.delete(deleteUri, "address = ?" +" AND "+"date = ?",
                    new String[] {PhoneNumber,String.valueOf(DateandTime)}); 

这是 deleteUri:

Uri deleteUri = Uri.parse("content://sms");

这是 l_contentResolver:

ContentResolver l_contentResolver = activity.getContentResolver();

我搜索了很多有关此异常的信息,但我没有在我的代码中找出造成这种情况的原因。请帮助我。在此先感谢。

最佳答案

我认为这不是您的代码中的问题。如果它仅在极少数情况下发生,则表明管理 SMS 的 ContentProvider 中存在错误。

由于 SMS API 不是 Android API 的公共(public)部分,我认为没有关于此问题的某种文档或将其标记为 Android Bug 的地方。

也许稍后重试删除消息。

关于android - 从收件箱中删除短信时出现奇怪的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478534/

相关文章:

c# - NLog 和 SQLite 错误

Java:Android:SQLite:使用 For 循环执行多次插入

python SQLite 3 : roll back to save point fails

exception - Eiffel 中的错误处理示例

Android 构建失败的应用程序 :dexDebug error

Android:横向模式下 Nexus 10 上不需要的左/右页边距

android - 在 Mac 10.7.5 上的 AVD 文件夹中创建 sdcard 失败

Java:套接字读取超时异常

android - getReadableDatabase 递归调用获取数据库

android - Kotlin Flow - 有没有类似于 LiveData 的 emitSource 的东西?