0

Я использую Universal Image Loader Library в android. Он работает отлично, но я получаю следующую ошибку.EOFException при использовании универсального загрузчика изображений

E/ImageLoader﹕ null 
java.io.EOFException 
     at libcore.io.Streams.readAsciiLine(Streams.java:203) 
     at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:579) 
     at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:827) 
     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283) 
     at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:497) 
     at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromNetwork(BaseImageDownloader.java:117) 
     at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:88) 
     at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(LoadAndDisplayImageTask.java:291) 
     at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDisk(LoadAndDisplayImageTask.java:274) 
     at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:230) 
     at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:136) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
     at java.lang.Thread.run(Thread.java:841) 

Ниже приведен мой код в классе приложений.

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() 
      .resetViewBeforeLoading(true) 
      .cacheOnDisk(true) 
      .cacheInMemory(true) 
      .showImageForEmptyUri(R.mipmap.fico_not_found) 
      .showImageOnFail(R.mipmap.fico_not_found) 
      .displayer(new FadeInBitmapDisplayer(300)) 
      .build(); 

    ImageLoaderConfiguration config1 = new ImageLoaderConfiguration.Builder(getApplicationContext()) 
      .defaultDisplayImageOptions(defaultOptions) 
      .memoryCache(new WeakMemoryCache()) 
      .diskCacheSize(100 * 1024 * 1024) 
      .build(); 

    this.imageLoader = ImageLoader.getInstance(); 
    imageLoader.init(config1); 

И я использую следующий код в моем классе адаптера

imageLoader = ((Application)context.getApplicationContext()).getImageLoader(); 
imageLoader.displayImage(Utils.IMAGE_URL + image_name,parentViewHolder.logo); 

Кто-нибудь получил такую ​​ошибку? Любая помощь в этом отношении будет оценена по достоинству.

+0

Почему использование UIL libaray? Они больше не поддерживают эту библиотеку. Попробуйте использовать глиссаду или Пикассо. –

+0

Piccaso: http: //www.picasso.fr/us/picasso_page_index.php Glide: https: //github.com/bumptech/glide –

+0

@ ZeeshanShabbir- Я использовал пикассо, но управлять кешем не удается Я использую UIL. –

ответ

0

Это не был хорошо документированный ответ. Он появляется в некоторых новых версиях Android, есть ошибка с переработанными соединениями URL. Чтобы исправить это (хотя могут быть некоторые проблемы с производительностью), вам необходимо добавить:

if (Build.VERSION.SDK != null && Build.VERSION.SDK_INT > 13) { 
    urlConnect.setRequestProperty("Connection", "close"); //set URL connection property 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^