에 대한 컨텐트 프로를 사용하여 나는 다음과 같은 예외가 얻을 :내가 안드로이드 컨텐트 프로를 호출 할 때 생성 및
java.lang.RuntimeException가 : 시작 활동을 할 수 없음을 ComponentInfo {de.harm.android.couchone/드 .harm.android.couchone.CouchContactClient} : java.lang.IllegalArgumentException가 : 알 수없는 URL 내용 : //de.harm.android.couchone.provider/test2
이러한 프로젝트는 다음과 같습니다
데이터베이스에 액세스 -- https://github.com/der-harm/CouchOneProvider
- .../CouchOneContacts
안드로이드는 차례로 지속성 기능을 처리 ContentProvider
와 통신 할 수 ContentResolver
소위 사용합니다.
ContentProvider
은 고유 한 Uri로 등록됩니다. ContentResolver
은이 Uri로 ContentProvider
을 호출하고 SQL 쿼리 문자열 및/또는 저장할 데이터와 같은 추가 데이터를 전달합니다. CouchOneProvider
/AndroidManifest.xml
에서
나는 다음과 같은 한 :
이<provider android:authorities="de.harm.android.couchone.provider"
android:name=".Provider" />
공급자가 전화를하기 위해 ContentResolver
에 의해 사용되는 CONTENT_URI
을 처리하기 위해
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(PROVIDER_NAME, DB_Name, URI_COLLECTION);
uriMatcher.addURI(PROVIDER_NAME, DB_Name + "/#", URI_ENTITY);
}
및
public static boolean isCollectionUri(Uri uri) {
return uriMatcher.match(uri) == URI_COLLECTION;
}
를 사용 ContentProvider
:
AndroidManifest.xml
중 하나라도 사용 권한이 누락 되었습니까?AndroidManifest.xml
에 권한을 잘못 정의하고 있습니까?CONTENT_URI
이 잘못 되었습니까?
업데이트 :
I 추가 정보가 있습니다
로그 캣 말한다을 :
de.harm.android.couchone.provider 에 대한 제공 정보를 찾지 못했습니다
이 shoul d는 출발점이됩니다. 그러나 지금까지 나는 어떤 해결책도 찾을 수 없었다.AndroidManifext.xml
에서
de.harm.android.couchone.Provider
정확히이 소문자로되는 이름을 제외하고, 권위로 지정됩니다 만, 잘해야한다 :
ContentProvider
구현의 완전한 클래스 이름입니다.
패키지 이름이 xml 파일에 이미 정의되어 있으므로 ".Provider"도 ok이어야합니다. 예외에서 볼 수있는 바와 같이
는, 클라이언트는 호출
content://de.harm.android.couchone.provider/test2
Logcats 대답은 :
는 de.harm.android.couchone.provider
에 대한 제공 정보를 찾지 못했습니다
내가 누락 된 것이 보이지 않습니다. 아마도 Eclipse 또는 에뮬레이터 문제일까요?
"Android 애플리케이션으로 프로젝트 실행"으로 제공자를 설치합니다.