Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
内容提供程序未知URL java.lang.IllegalArgumentException错误_Java_Android - Fatal编程技术网

内容提供程序未知URL java.lang.IllegalArgumentException错误

内容提供程序未知URL java.lang.IllegalArgumentException错误,java,android,Java,Android,为此奋斗了几个小时,并在代码中尝试了一系列排列。 当我尝试插入一条新记录时,我不断收到IllegalArgumentException 以下是舱单声明: <provider android:name="com.hakeem.model.BoxerProvider" android:exported="false" android:readPermission="true" android:writePermission="true" android:auth

为此奋斗了几个小时,并在代码中尝试了一系列排列。 当我尝试插入一条新记录时,我不断收到IllegalArgumentException

以下是舱单声明:

<provider android:name="com.hakeem.model.BoxerProvider" android:exported="false"
        android:readPermission="true" android:writePermission="true"
        android:authorities="com.hakeem.model" />
下面是按提供程序类从中获取的getType和insert函数

@Override
public String getType(Uri uri) {

    int uriType = BoxerContract.URI_MATCHER.match(uri);
    String sUriType;

    switch(uriType){

    case BoxerContract.BOXER:
        sUriType = BoxerContract.BOXER_ID_TYPE;
        break;
    case BoxerContract.BOXERS:
        sUriType = BoxerContract.BOXER_TYPE;
        break;
    default:
        throw new IllegalArgumentException("Unknown uri: getType" + uri);
    }

    return sUriType;
}

@Override
public Uri insert(Uri uri, ContentValues values) {

    long id;
    int uriType = BoxerContract.URI_MATCHER.match(uri);
    Uri insertedUri;
    SQLiteDatabase boxerDB;

    switch(uriType){

    case BoxerContract.BOXERS:
        boxerDB = dbHelper.getWritableDatabase();
        id = boxerDB.insert(BoxerContract.TABLE_NAME, null, values);
        break;
    default:
        throw new IllegalArgumentException("Unknown Uri: in insert statement" + uri);
    }

    insertedUri = Uri.parse(BoxerContract.TABLE_NAME + "/" + id);

    return insertedUri;
}
最后,这里是我在活动中调用insert的地方:

values.put(BoxerContract.BOXER_NAME, edBoxerName.getText().toString());
                values.put(BoxerContract.WEIGHT_CLASS, edWeight.getText().toString());
                values.put(BoxerContract.WINS, edWins.getText().toString());
                values.put(BoxerContract.LOSSES,edLoss.getText().toString());


                getContentResolver().insert(BoxerContract.CONTENT_URI, values);
现在,我的活动的onCreate中的这段代码不会导致错误,但似乎会被忽略,因为提供者的查询方法中的日志语句没有出现在logcat中

cursor = getContentResolver().query(BoxerContract.CONTENT_URI, projection, null, null, null);

为了简洁起见,我排除了一些代码。如果我需要发布任何其他内容,请告诉我。

以后,请发布完整的堆栈跟踪


也就是说,尝试替换
Uri.parse(“内容:/”+AUTHORITY)带有
Uri.parse(“内容:/”+权限),因为Android通常区分大小写。

这就是问题所在。谢谢。我现在还有其他错误,特别是sqlite错误,它说没有这样的表。再次感谢。
cursor = getContentResolver().query(BoxerContract.CONTENT_URI, projection, null, null, null);