getContentResolver()。delete()偶尔抛出IllegalArgumentException

时间:2018-11-12 15:41:29

标签: android android-contentprovider android-contentresolver

我们发布了该产品的测试版,该版本适用于大多数用户,但是使用OnePlus 5T / Android 8.1的用户报告了一个偶然的异常:

java.lang.RuntimeException: Unable to resume activity {com.ourproduct/com.ourproduct.MainActivity}: java.lang.IllegalArgumentException: Unknown URL content://com.ourproduct.data/delete
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3726)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3766)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1737)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6753)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by:java.lang.IllegalArgumentException: Unknown URL content://com.ourproduct.data/delete
    at android.content.ContentResolver.delete(ContentResolver.java:1745)
    <... here is our code stacktrace ...>

我与用户联系并获得了一些其他信息:并非每次用户使用此操作都会发生此问题,

内容提供者是在同一应用程序中定义的。

该代码是微不足道的,仅出于问题的完整性:

protected void unsetValue(final String group, final String name) {
    myContext.getContentResolver().delete(
        uri("delete"), null, new String[] { group, name }
    );
}

private Uri uri(String location) {
    return Uri.parse("content://com.ourproduct.data/" + location);
}

有什么想法吗?也许我可以向用户询问一些其他信息?

0 个答案:

没有答案