안드로이드 개발 질문/답변
(글 수 45,052)
A 패키지 안에
1) DB를 생성하는 클래스가 있고요
2) ContentProvider를 상속받아 DB를 제공하는 클래스가(ExContentProviderActivity) 있고요
-. 여기서 Uri가 다음과 같이 주어져 있고요
static final Uri CONTENT_URI = Uri.parse("content://aaa.bbb.ccc/ddd");
3) Menifest파일에 다음과 같이 provider에 대해 기술되어 있습니다.
... 생략 ...
<activity
android:name=".ExContentProviderActivity"
android:label="@string/title_activity_ex_content_provider" />
<provider
android:name="ExContentProviderActivity"
android:authorities="aaa.bbb.ccc">
</provider>
</application>
B 패키지 안에
1) ContentResolver로 ContentProvider가 제공하는 DB를 사용하는데요
static final String MY_URI = "content://aaa.bbb.ccc/ddd";
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(Uri.parse(MY_URI), null, null, null, null);
====> 여기서 cursor가 null이 나옵니다. provider를 못 찾는다는 error log를 보이고요...
물론 runtime에서 에러 발생합니다.
뭐가 문제인지 잘 모르겠습니다. 아직 Content Provider를 충분히 이해를 못해서인지...
도움 감사합니다.

가끔은 뒤도 돌아보자... 이 만큼 왔구나...!
2012.08.09 04:45:23
자답하겠습니다.
Content Provider 때문에 고생 무지했습니다.
안된 이유가 이랬습니다.
-. Content Provider를 제공하는 Project의 패키지 이름이 package yyy.uuu.ccc; 이고요,
-. Content Provider를 호출하는(ContentResolver가 있는)는 프로그램이 다른 Project로 생성했지만 역시 패키지 이름이 동일한 package yyy.uuu.ccc;로 되어 있어서
결국은 ContentResolver가 있는 프로그램이
실행될 때 Content Provider를 제공하는 프로그램이 기기에서 자동 삭제가 됩니다.
그래서 자꾸만 provider를 찾을 수 없다는 로그를 띄우고 죽어버린 겁니다.
휴~~~



