Picasso не загружает изображения в ImageView с URL-адреса

Я использую Picasso для загрузки изображений с URL-адреса, полученного из API.

Это моя текущая конфигурация Пикассо. Я использую Dagger2 для обеспечения зависимости Пикассо.

@Provides
Picasso getPicasso(@Named("application-context") Context context, OkHttp3Downloader downloader) {
     return new Picasso.Builder(context)
              .downloader(downloader)
              .indicatorsEnabled(true)
              .loggingEnabled(true)
              .build();
    }

Это моя конфигурация OkHttp

@Provides
OkHttpClient getOkHttpClient(HttpLoggingInterceptor loggingInterceptor, Cache cache, Interceptor httpInterceptor) {
    return new OkHttpClient.Builder()
            .addInterceptor(httpInterceptor)
            .addInterceptor(loggingInterceptor)
            .cache(cache)
            .build();
   }

А вот и реализация LoggingInterceptor

@Provides
HttpLoggingInterceptor getHttpLoggingInterceptor() {
    HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(message -> Timber.tag("OkHttp").d(message));         
    loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
    return loggingInterceptor;
    }

Но когда я использую picasso в адаптере просмотра ресайклера, как это

picasso.load(article.urlToImage)
    .placeholder(R.drawable.placeholder)
    .into(thumbnailImageView)

Загружается только изображение-заполнитель. Переданный URL-адрес изображения не загружается в представлении изображения

Ошибок тоже нет. Вот логарифм

D/Picasso: Main        created      [R1] Request{http://bsmedia.business-standard.com/_media/bs/img/article/2017-09/04/full/1504466214-5997.jpg}
D/Picasso: Hunter      executing    [R0]+11ms 
D/Picasso: Dispatcher  enqueued     [R1]+1ms 
D/Picasso: Hunter      executing    [R1]+2ms 
D/Picasso: Main        created      [R2] Request{https://img.etimg.com/thumb/msid-63672403,width-672,resizemode-4,imgsize-538337/air-india.jpg}
D/Picasso: Dispatcher  enqueued     [R2]+1ms 
D/Picasso: Hunter      executing    [R2]+1ms 
D/Picasso: Main        created      [R3] Request{http://bsmedia.business-standard.com/include/_mod/site/html5/images/no-meta-preview.jpg}
D/Picasso: Dispatcher  enqueued     [R3]+1ms 
D/Picasso: Hunter      executing    [R3]+1ms 
D/Picasso: Main        created      [R4] Request{https://www.livemint.com/rf/Image-621x414/LiveMint/Period2/2018/04/09/Photos/Processed/[email protected]}
D/Picasso: Dispatcher  enqueued     [R4]+1ms 
D/Picasso: Hunter      executing    [R4]+1ms 
D/Picasso: Main        created      [R5] Request{http://bsmedia.business-standard.com/_media/bs/img/article/2018-03/12/full/1520793310-387.jpg}
D/Picasso: Dispatcher  enqueued     [R5]+1ms 
D/Picasso: Hunter      executing    [R5]+1ms

Я вижу, что запрос на загрузку изображения выполняется, но изображение не загружается.

В чем проблема?

Что делает ваш httpInterceptor? А какой-нибудь логи от вашего loggingInterceptor?

Samuel Eminet 08.04.2018 22:18

Перехватчик Http просто добавляет несколько заголовков для аутентификации API. Это журналы из loggingInterceptor. В моем журнале нет других журналов, касающихся Picasso.

Sriram R 08.04.2018 22:37

Это журналы с loggingEnabled(true), у вас должны быть журналы с loggingInterceptor, не могли бы вы добавить этот код зависимости?

Samuel Eminet 08.04.2018 22:39

Единственные журналы перехватчика журналов, которые я вижу, относятся к Retrofit. Отредактировал вопрос с реализацией перехватчика логов.

Sriram R 08.04.2018 23:01

Значит, никаких журналов от Timber tag OkHttp? Вы должны увидеть что-то вроде этого: `* -> POST / приветствие http / 1.1 * Host: example.com * Content-Type: plain / text * Content-Length: 3 * -> END POST * * <- 200 OK (22 мс) * Content-Type: plain / text * Content-Length: 6 * <- END HTTP`

Samuel Eminet 08.04.2018 23:07

Ага, не знаю. Пытался отладить, но тщетно. Я вижу один лог из тега OkHttp. В этом журнале просто выводится URL-адрес API, запрошенного при модернизации. Это все, что я получаю в логарифме

Sriram R 08.04.2018 23:13

Попробуйте HttpLoggingInterceptor.Level.BODY вместо BASIC, вы должны получить дополнительную информацию о коде ответа: 200> OK или код 3/4xx

Samuel Eminet 08.04.2018 23:16

ты решил эту проблему? у меня такая же проблема

Ralph 22.10.2018 10:52

@ Ральф Ага. Удалите OkHttp3Downloader, и он будет работать нормально.

Sriram R 22.10.2018 15:45

@SriramR Я наконец понял это, так как необычно, что мы не можем добавить загрузчик в Пикассо. Я попытался импортировать com.squareup.picasso.OkHttp3Downloader, а не com.jakewharton.picasso.OkHttp3Downloader, и он работает! Спасибо, кстати

Ralph 23.10.2018 05:47
0
10
330
0

Другие вопросы по теме