内容提供程序未知URL java.lang.IllegalArgumentException错误
为此奋斗了几个小时,并在代码中尝试了一系列排列。 当我尝试插入一条新记录时,我不断收到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
<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);