3
안드로이드

에 대한 컨텐트 프로를 사용하여 나는 다음과 같은 예외가 얻을 :내가 안드로이드 컨텐트 프로를 호출 할 때 생성 및

java.lang.RuntimeException가 : 시작 활동을 할 수 없음을 ComponentInfo {de.harm.android.couchone/드 .harm.android.couchone.CouchContactClient} : java.lang.IllegalArgumentException가 : 알 수없는 URL 내용 : //de.harm.android.couchone.provider/test2

이러한 프로젝트는 다음과 같습니다

데이터베이스에 액세스 -

안드로이드는 차례로 지속성 기능을 처리 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 애플리케이션으로 프로젝트 실행"으로 제공자를 설치합니다.

답변

3

이 문제를 해결했습니다 :

두 프로젝트의 패키지 구조는 동일합니다. de.harm.android.couchonede.harm.android.couchone.providerde.harm.android.couchone.client으로 변경했습니다.

관련 문제