2011-05-12 37 views
0

這是一類是延伸basecolumns爲什麼我的內容uri得到錯誤?

public static final String AUTHORITY = "imammuda"; 
public static final String PROGRAMPATH = "Program"; 

public static final Uri PROGRAM_URI = Uri.parse("content://" + AUTHORITY + "/" + PROGRAMPATH); 

這是ContentProvider類延伸的ContentProvider

static{ 
    sUriMatcher.addURI(ImamShareData.AUTHORITY, ImamShareData.PROGRAMPATH, PROGRAM); 
    sUriMatcher.addURI(ImamShareData.AUTHORITY, ImamShareData.PROGRAMPATH + "/#", PROGRAM_ID); 
} 
@Override 
public Uri insert(Uri uri, ContentValues initialvalues) { 
    TableNumber = sUriMatcher.match(uri); 
    if(TableNumber != PROGRAM){ 
     throw new IllegalArgumentException("Unknown URI " + uri); 
    } 
} 

這是其延伸expandablelist活性的類

private void createdata(){ 
(...) 
(...) 
    for(int i = 0; i < title.length; i++){ 
     ContentValues values = new ContentValues(); 
     values.put(ImamShareData.DataContent.KEY_PROGRAM_TITLE, title[i]); 
     Uri group = cr.insert(ImamShareData.DataContent.PROGRAM_URI, values); <== when call give error 
    } 

這是明顯的XML

<provider android:authorities="imammuda" android:name="contentProvider" android:multiprocess="true"></provider> 

這是logcat的

05-12 12:03:49.823: ERROR/AndroidRuntime(3875): Caused by: java.lang.IllegalArgumentException: Unknown URI content://imammuda/Program 
05-12 12:03:49.823: ERROR/AndroidRuntime(3875):  at com.android.imammuda.contentProvider.insert(contentProvider.java:139) 
05-12 12:03:49.823: ERROR/AndroidRuntime(3875):  at android.content.ContentProvider$Transport.insert(ContentProvider.java:197) 
05-12 12:03:49.823: ERROR/AndroidRuntime(3875):  at android.content.ContentResolver.insert(ContentResolver.java:592) 
05-12 12:03:49.823: ERROR/AndroidRuntime(3875):  at com.android.imammuda.Program.createdata(Program.java:53) 
05-12 12:03:49.823: ERROR/AndroidRuntime(3875):  at com.android.imammuda.Program.onCreate(Program.java:32) 

回答

1

在AndroidManifest文件提下的Android完整的包名稱:name元素。 嘗試使用權限作爲包名稱。