미디어 파일을 리스트업하고 갤러리를 만들고 있습니다.
그런데 아래와 같이 VerifyError 가 발생합니다.
문제는 2.1 에뮬레이터에서는 잘 되는데 1.6 에뮬레이터만 발생합니다.
CursorAdapter와 미디어 cursor 가 호환이 잘 안되는 것인가요.
비슷한 Sqlite의 DB 커서와 CursorAdapter 조합은 잘되는데 미디어 cursor만 이러는 것 같기도 하고;;;
비슷한 경험 하신분 조언 부탁드립니다.
08-26 16:41:09.568: ERROR/AndroidRuntime(544): Uncaught handler: thread main exiting due to uncaught exception
08-26 16:41:09.588: ERROR/AndroidRuntime(544): java.lang.VerifyError: AGallery$GaAdapter
08-26 16:41:09.588: ERROR/AndroidRuntime(544): at AGallery.onCreate(AGallery.java:57)
// 환경
// AndroidManifest.xml
<uses-sdk android:minSdkVersion="4" />
// default.properies
target=android-7
// 소스
String[] cols = {MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.SIZE
};
String where = MediaStore.Images.Media.DATA + " LIKE "+ "'%/sdcard'";
Cursor cur = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, cols, where, null, null);
GaAdapter ga = new GaAdapter(context, cur); // 에러!!!!
public class GaAdapter extends CursorAdapter{
public GaAdapter(Context context, Cursor c) {
super(context, c); // 여기서 죽는듯;
Log.d("ok");
}
디버깅 결과)
갤러리 기능을 구현하기 위해 CursorAdapter 내부적으로 Images.Thumbnails.getThumbnail 함수를 사용하고 있습니다.
문제는 이 함수가 api1.6에는 없다는 것이네요.
target=android-7 으로 컴파일 에러는 나지 않지만 실제 1.6 디바이스에서는 오류가 발생합니다.
Images.Thumbnails.getThumbnail 함수 호출 여부와 상관없이 소스에 포함되는 순간 오류는 무조건 나오네요.