Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 如何使用ContentProvider获取insert()错误的原因?_Android_Sqlite_Android Contentprovider - Fatal编程技术网

Android 如何使用ContentProvider获取insert()错误的原因?

Android 如何使用ContentProvider获取insert()错误的原因?,android,sqlite,android-contentprovider,Android,Sqlite,Android Contentprovider,我有一个代码,使用自定义ContentProvider将一行插入数据库: Uri contentUri = Uri.withAppendedPath(DataProvider.CONTENT_URI, UserTable.TABLE_NAME); Uri resultUri = getContext().getContentResolver().insert(contentUri, contentValues); boolean success = (Long.parseLong(resultU

我有一个代码,使用自定义ContentProvider将一行插入数据库:

Uri contentUri = Uri.withAppendedPath(DataProvider.CONTENT_URI, UserTable.TABLE_NAME);
Uri resultUri = getContext().getContentResolver().insert(contentUri, contentValues);
boolean success = (Long.parseLong(resultUri.getLastPathSegment()) != -1);
插入方法在ContentProvider中定义如下:

public class DataProvider extends ContentProvider {

// ...

    @Override
    public Uri insert(Uri uri, ContentValues initialValues) {
        String table = getTableName(uri);
        SQLiteDatabase database = dbHelper.getWritableDatabase();
        long value = database.insert(table, null, initialValues);
        return Uri.withAppendedPath(CONTENT_URI, String.valueOf(value));
    }

}
我注意到,有时,插入失败,返回的行ID等于-1,正如您在第一段代码的第三行中看到的,成功应该为false。问题是我无法理解原因,因为LogCat没有打印任何与SqlLite相关的异常。
为什么ContentProvider不告诉我这些错误的原因?

要获得异常,请使用它。

哇!我没有注意到这一点,我会努力的