简体   繁体   中英

Glide isn't displaying images in my android app

In my app I have the following code in my captureBonus activity (which is where the ImageView lives as well):

// Process the Sample Image
bonusSampleImage = findViewById(R.id.bonusSampleImage);
Glide.with(this)
    .load("http://i.imgur.com/DvpvklR.png")
    //.load("https://www.tourofhonor.com/appimages/2019fl4.jpg")
    .into(bonusSampleImage);

But when I run my app I'm not getting any image view at all. Before I added the above code, the image view with its placeholder would appear. Also, I tried both links in the code, neither work (I thought it was https related).

I have the internet and external storage permissions already.

I found that Glide had logged some activity in logcat, it was only viewable in verbose mode though:

2019-05-01 16:51:38.329 3182-3182/net.tommyc.android.tourofhonor W/Glide: Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored
2019-05-01 16:51:38.568 3182-3182/net.tommyc.android.tourofhonor I/ViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2019-05-01 16:51:38.690 3182-3182/net.tommyc.android.tourofhonor W/Glide: Load failed for http://i.imgur.com/DvpvklR.png with size [1032x2038]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource
    There was 1 cause:
    java.net.UnknownHostException(Unable to resolve host "i.imgur.com": No address associated with hostname)
     call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE
    There was 1 cause:
    java.net.UnknownHostException(Unable to resolve host "i.imgur.com": No address associated with hostname)
     call GlideException#logRootCauses(String) for more detail
        Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetch failed
    There was 1 cause:
    java.net.UnknownHostException(Unable to resolve host "i.imgur.com": No address associated with hostname)
     call GlideException#logRootCauses(String) for more detail
          Cause (1 of 1): class java.net.UnknownHostException: Unable to resolve host "i.imgur.com": No address associated with hostname
2019-05-01 16:51:38.690 3182-3182/net.tommyc.android.tourofhonor I/Glide: Root cause (1 of 1)

Here is the corresponding layout XML for this activity:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:fillViewport="true">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:context=".captureBonus">

        <RelativeLayout
            android:id="@+id/basicBonusInfo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp">

            <TextView
                android:id="@+id/bonusName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/valueBonusName"
                android:layout_alignParentTop="true"
                android:layout_alignParentStart="true"
                android:textSize="18sp"/>

            <TextView
                android:id="@+id/bonusCategory"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/valueCategory"
                android:layout_below="@id/bonusName"
                android:layout_alignParentStart="true"/>

            <TextView
                android:id="@+id/bonusCode"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/valueBonusCode"
                android:layout_below="@id/bonusName"
                android:layout_alignParentEnd="true"/>

        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/bonusLocationInfo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_below="@id/basicBonusInfo">

            <TextView
                android:id="@+id/bonusAddress"
                android:text="1600 Pennsylvania Ave NW"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

            <TextView
                android:id="@+id/bonusCity"
                android:text="Washington"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/bonusAddress"/>

            <TextView
                android:id="@+id/bonusState"
                android:text="DC"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="8dp"
                android:layout_below="@id/bonusAddress"
                android:layout_toEndOf="@id/bonusCity"/>

            <TextView
                android:id="@+id/bonusGPSLabel"
                android:text="GPS:"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_below="@id/bonusCity"/>

            <TextView
                android:id="@+id/bonusGPSCoordinates"
                android:text="XX.YYYYYY, -XX.YYYYYY"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_below="@id/bonusCity"
                android:layout_alignParentEnd="true" />

        </RelativeLayout>

        <ImageView
            android:id="@+id/bonusMainImage"
            android:contentDescription="@string/mainImageDescription"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/bonusLocationInfo"
            android:src="@drawable/no_image_taken"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"
            android:layout_margin="8dp"
            android:clickable="true"
            android:focusable="true"/>

        <ImageView
            android:id="@+id/bonusSecondaryImage"
            android:contentDescription="@string/secondaryImageDescription"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/bonusMainImage"
            android:src="@drawable/optional_2nd_image"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"
            android:layout_margin="8dp"/>

        <TextView
            android:id="@+id/additionalBonusDetails"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/lblSampleBonusImage"
            android:layout_below="@id/bonusSecondaryImage"
            android:layout_marginStart="8dp"/>

        <ImageView
            android:id="@+id/bonusSampleImage"
            android:contentDescription="@string/sampleImageDescription"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/additionalBonusDetails"
            android:src="@drawable/sample_image_missing"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"
            android:layout_margin="8dp"/>

        <TextView
            android:id="@+id/bonusFlavorLabel"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Bonus Notes"
            android:layout_marginStart="8dp"
            android:layout_below="@id/bonusSampleImage"/>

        <TextView
            android:id="@+id/bonusFlavorContent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="XXXXXXXXXXXXXXX"
            android:layout_margin="8dp"
            android:layout_below="@id/bonusFlavorLabel"/>

        <Button
            android:id="@+id/btnSubmitBonus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btnLblSubmitBonus"
            android:layout_below="@id/bonusFlavorContent"
            android:layout_centerHorizontal="true"/>

    </RelativeLayout>
</ScrollView>

You are missing a s in your URL. Please use https instead of http for the image URL.

Glide.with(this)
    .load("https://i.imgur.com/DvpvklR.png")  // Add https instead of http
    .placeholder(R.drawable.sample_image_missing)  // Add a placeholder here
    .into(bonusSampleImage);

And the following in your dependency in your build.gradle file. I think this one is missing.

annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

As stated in the Glide's documentation you need have the repositories as well if you do not have those already.

And yes, please check your internet connection as well.

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.9.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
}

repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
        maven { url 'https://maven.google.com' }
    }

Create a class MyGlideApp and rebuild your project.

@GlideModule
public class MyGlideApp extends AppGlideModule {

    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }
}

Paste this in your activity class

public void loadGlideImage(Context context, ImageView imageView, String url) {
            GlideApp.with(context.getApplicationContext())
                    .load(url)
                    .signature(new ObjectKey(url))
                    .dontAnimate()
                    .into(imageView);
    }

Then you can do

String img_url = "https://www.tourofhonor.com/appimages/2019fl4.jpg";
loadGlideImage(this, bonusSampleImage, img_url);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM