Android:IllegalStateException:Cand';执行getThumbail时初始化游标窗口
我的堆栈跟踪显示非法状态异常: 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) 位于com.topicshow.threading.ImageThread.loadingImageFromID(ImageThread.java:56) 位于com.topicshow.threading.ImageThread.run(ImageThread.java:52) 函数loadingImageFromID是我的处理程序类中的一个函数,线程将在其中向处理程序发送消息,处理程序将调用此函数Android:IllegalStateException:Cand';执行getThumbail时初始化游标窗口,android,image,cursor,illegalstateexception,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.ContentProviderP
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没有该信息。。。。线程是在适配器中执行的。您需要MediaStore的特定权限吗?什么类型的权限?我不知道,只是看起来像是某种类型的MediaStore错误