Android:IllegalStateException:执行getThumbail时无法初始化光标窗口

时间:2013-12-09 21:13:44

标签: android image cursor illegalstateexception

我有一个堆栈跟踪说非法状态异常:

  

java.lang.IllegalStateException:无法初始化游标窗口   在android.database.CursorWindow.native_init(本机方法)   在android.database.CursorWindow。(CursorWindow.java:63)   在android.database.CursorWindow。(CursorWindow.java:80)   在android.content.ContentProviderProxy.query(ContentProviderNative.java:437)   在android.content.ContentResolver.query(ContentResolver.java:264)   在android.provider.MediaStore $ InternalThumbnails.getThumbnail(MediaStore.java:387)   在android.provider.MediaStore $ Images $ Thumbnails.getThumbnail(MediaStore.java:788)   at com.topicshow.threading.ImageThread.loadingImageFromID(ImageThread.java:56)   在com.topicshow.threading.ImageThread.run(ImageThread.java:52)

函数loadingImageFromID是我的处理程序类中的一个函数,我的线程将sendMessage发送到处理程序,处理程序将调用此函数。

    private void loadingImageFromID () {
    Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(
            mContext.getContentResolver(), 
            mNativeID, 
            MediaStore.Images.Thumbnails.MICRO_KIND, 
            new Options());

    if (!mExpired) 
    {
        ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
        bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos); 
        byte[] bitmapdata = bos.toByteArray();

        Message msg = new Message();
        Bundle bundle = new Bundle();
        bundle.putByteArray("IMAGE", bitmapdata);
        msg.setData(bundle);

这是从mediastore获取图像数据的代码。

public void loadGalleryToAdapter(int width, String bucketID) {


    Cursor thumbnailCursor = MediaStore.Images.Media.query(getContext().getContentResolver(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
            new String [] { 
                MediaStore.Images.Media._ID,
                MediaStore.Images.ImageColumns.DATE_ADDED
            },
            MediaStore.Images.ImageColumns.BUCKET_ID + " IN (" + bucketID + ")",
            null,
            MediaStore.Images.ImageColumns.DATE_ADDED + " DESC"
    );

    GalleryCursorAdapter adapter = new GalleryCursorAdapter(getContext(), thumbnailCursor, width);  
    setAdapter(adapter); 

}

有谁知道发生了什么事。 loadGalleryToAdapter我不确定它是起点,因为stacktrace没有那个信息....线程是在适配器中执行的。

0 个答案:

没有答案