Skip to content

GlideException: Failed to load resource #1842

Open
@Berki2021

Description

@Berki2021

Describe your environment

  • Android device: Google Nexus 5X API29 x86 Emulator
  • Android OS version: 10
  • Google Play Services version: I don't know
  • Firebase/Play Services SDK version: I don't know
  • FirebaseUI version: 6.3.0

Step 3: Describe the problem:

I am trying to load an Image from my firebase storage and show it in my Cardview, but it doesn't work. The only thing I get is: class com.bumptech.glide.load.engine.GlideException: Failed to load resource

Steps to reproduce:

  1. Add Glide and Firebase UI as Dependencies
  2. Get StorageReference from Firebase Cloud Firestore
  3. Try to download Image with Firebase Ui and Glide

Observed Results:

com.example.app W/Glide: Load failed for gs://censored.appspot.com/products/images/censored-SET_an238386.png with size [433x289]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource

Expected Results:

  • The Image should be shown.

Relevant Code:

  • XML
```xml
<data>
    <variable
        name="product"
        type="com.example.app.framework.datasource.models.product.Product" />
</data>

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.google.android.material.card.MaterialCardView
        android:id="@+id/mcv_product_item"
        android:layout_width="165dp"
        android:layout_height="210dp"
        android:layout_marginTop="12dp"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:id="@+id/iv_product_image"
                android:layout_width="165dp"
                android:layout_height="110dp"
                android:contentDescription="TODO"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:loadImage="@{product.images[0]}" <-- Trying to load Image here
                tools:src="@drawable/ic_calibrate" />

            <com.google.android.material.textview.MaterialTextView
                android:id="@+id/tv_product_name"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="12dp"
                android:layout_marginEnd="8dp"
                android:ellipsize="end"
                android:maxLines="2"
                android:text="@{product.name}"
                app:layout_constraintEnd_toEndOf="@+id/iv_product_image"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="@+id/iv_product_image"
                app:layout_constraintTop_toBottomOf="@+id/iv_product_image"
                tools:text="Test Name" />

            <com.google.android.material.textview.MaterialTextView
                android:id="@+id/tv_product_price"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginBottom="12dp"
                android:text="@{product.price}"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="@+id/tv_product_name" />


        </androidx.constraintlayout.widget.ConstraintLayout>
    </com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>
```
  • Data Class
data class Product(
    val name: String = "",
    val price: Float = 0F,
    val category: String = "",
    val note: String = "",
    val articelNumber: Int = 0,
    val images: ArrayList<String> = arrayListOf(),
    val description: ArrayList<ProductDescription> = arrayListOf(),
    val technicalDescription: ArrayList<ProductDescription>? = arrayListOf(),
    val hasAccessories: Boolean = false
)

data class ProductDescription(
    val category: String = "",
    val body: String = "",
)
  • Glide Binding Adapter
@BindingAdapter("loadImage")
fun setImageFromUrl(view: ImageView, url: String?) {
    if (!url.isNullOrEmpty()) {
        GlideApp
            .with(view)
            .load(url)
            .fitCenter()
            .apply(RequestOptions.bitmapTransform(RoundedCorners(4)))
            .into(view)
    } else {
        Timber.d("Oh, Something went wrong!")
    }
}
  • Glide AppModule
@GlideModule
class GlideAppModule : AppGlideModule() {
    override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
        super.registerComponents(context, glide, registry)
        registry.append(StorageReference::class.java, InputStream::class.java, FirebaseImageLoader.Factory())
    }
}
  • Dependencies
implementation "com.firebaseui:firebase-ui-storage:6.3.0"
implementation "com.github.bumptech.glide:glide:4.11.0"
kapt "com.github.bumptech.glide:compiler:4.11.0"
kapt "com.github.bumptech.glide:annotations:4.11.0"

I also have to state that this problem is 100% on the firebase side as I have already discussed this with the glide developers..

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions