UniversalImageLoader null崩溃

时间:2016-01-28 03:05:33

标签: android android-studio android-gradle universal-image-loader

我遇到了一个问题,我的MacBook上的存储空间不足,在删除了一些文件(与Android无关)后返回我的Android项目时,我现在遇到了库的错误。

这是我收到的错误:

  

E / Surface:getSlotFromBufferLocked:未知缓冲区:0xab8161a0 01-28

     

E / libEGL:调用没有当前上下文的OpenGL ES API(记录一次   每个帖子)

     

E / ImageLoader:null

以下是相关代码:

@Override
public void onBindViewHolder(final AttractionRowViewHolder attractionRowViewHolder, int position) {
    ImageLoader imageLoader;
    imageLoader = ImageLoader.getInstance();

    Bitmap imageTest = imageLoader.loadImageSync(currentAttraction.attractionImageSmall, options);
    Bitmap image = ImageHelper.scaleCenterCrop(imageTest, 156, 156); //Twice size of image view to retain resolution
    image = ImageHelper.getRoundCornerBitmap(image, 14); //Twice actual scaled down corner radius
    attractionRowViewHolder.imageView.setImageBitmap(image);
}

它在这条线上崩溃了:

    Bitmap imageTest = imageLoader.loadImageSync(currentAttraction.attractionImageSmall, options);

我尝试过做gradle同步,重建,重命名.jar文件等,但到目前为止还没有任何工作。

有人有什么想法吗?我假设当我用完容量时会自动删除某些内容。

修改

事实证明,它崩溃了下面的一行。 imageTest为空,scaleCenterCrop不能为空。我仍然不知道为什么它突然变为空?

1 个答案:

答案 0 :(得分:1)

我猜这个位图尚未加载,因为你没有把它放在AsyncTask中。

为什么不这样做呢?

imageLoader.loadImage(currentAttraction.attractionImageSmall, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
    Bitmap image = ImageHelper.scaleCenterCrop(loadedImage, 156, 156);
    image = ImageHelper.getRoundCornerBitmap(image, 14);
    attractionRowViewHolder.imageView.setImageBitmap(image);
}
});