Glide showing error: Failed to find GeneratedAppGlideModule

前端 未结 6 1308
小鲜肉
小鲜肉 2020-12-05 09:37

I am trying to load an image using glide but somehow I can not load the image using glide. As it shows following error:

Failed to find GeneratedAppGli

相关标签:
6条回答
  • 2020-12-05 10:08

    In addition to Ridhi's Answer:

    For me to make it work properly I had to include isManifestParsingEnabled.

    import com.bumptech.glide.annotation.GlideModule;
    import com.bumptech.glide.module.AppGlideModule;
    
    @GlideModule
    public class MyGlideApp extends AppGlideModule {
    
        @Override
        public boolean isManifestParsingEnabled() {
            return false;
        }
    
    }
    
    0 讨论(0)
  • 2020-12-05 10:10

    All above answer is True and work fine

    but i noticed when use #placeholder and #error method the glide work fine with out build GlideModule class as mentioned above

    Example : When use glide like this is not work and give must build GlideModule

    Glide.with(this)
                 .load(uri)
                    .into(imageView);
    

    and this is work fine

    Glide.with(this).load(uri).placeholder(android.R.drawable.progress_indeterminate_horizontal).error(android.R.drawable.stat_notify_error).into(imageView);
    
    0 讨论(0)
  • 2020-12-05 10:11

    I have faced this issue with Glide:4.9.0 with AndroidX
    solved it like this

    In your gradle.properties
    android.useAndroidX = true
    android.enableJetifier=true

    In your build.gradle
    //Glide dependency implementation 'com.github.bumptech.glide:glide:4.9.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

    Then add your CustomGlideModule
    @GlideModule public class CustomeGlideModule extends AppGlideModule {}

    The final step generates the GlideModule
    Build >> Make Project and you should see the generated module in your build folder

    0 讨论(0)
  • 2020-12-05 10:14

    in build.gradle (app)

    def glide_version = "4.11.0"
    implementation ("com.github.bumptech.glide:glide:$glide_version"){
        exclude group: "com.android.support"
    }
    kapt "com.github.bumptech.glide:compiler:$glide_version"
    

    in build.gradle (Project)

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

    in your respective Class

    import com.bumptech.glide.Glide
    import com.bumptech.glide.request.target.BitmapImageViewTarget
    
    Glide.with(imageView.rootView.context)
    .asBitmap()
    .load("your url")
    .into(object : BitmapImageViewTarget(imageView) {
         override fun setResource(resource: Bitmap?) {
             imageView.setImageBitmap(resource)
             super.setResource(resource)
         }
    })
    
    0 讨论(0)
  • 2020-12-05 10:15

    Finally, I found my answer here.

    What I have done :

    Step-1

    I created an empty class named GlideApp

    import com.bumptech.glide.annotation.GlideModule;
    import com.bumptech.glide.module.AppGlideModule;
    
    @GlideModule
    public class GlideApp extends AppGlideModule {
    
    }
    

    Note: Don't forget to add annotation @GlideModule.

    Step-2 After that, I build/rebuild the project and then, replaced Glide with GlideApp.and now no need to use RequestOptions.

    public class CustomBindingAdapter {
    
        @BindingAdapter({"bind:image_url"})
        public static void loadImage(ImageView imageView, String url) {
    
    //        RequestOptions requestOptions = new RequestOptions();
    //        requestOptions=requestOptions.placeholder(R.drawable.boy_32);
    
            GlideApp.with(imageView.getContext())
                    .load(url)
                    .placeholder(R.drawable.boy_32)
                    .into(imageView);
    
    //            Glide.with(imageView.getContext())
    //                    .load(url)
    //                    .apply(requestOptions)
    //                    .into(imageView);
        }
    }
    

    Edit: For androidx and Glide versin 4.9.0:

    In my app's gradle.build:

    implementation ("com.github.bumptech.glide:glide:4.9.0") {
        exclude group: "com.android.support"
    }
    annotationProcessor 'androidx.annotation:annotation:1.0.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
    implementation ("com.github.bumptech.glide:glide:4.9.0@aar") {
        transitive = true
    }
    

    In my gradle.properties:

    android.enableJetifier=true
    android.useAndroidX=true
    

    That's all.

    0 讨论(0)
  • 2020-12-05 10:28

    Kotlin Solution:

    Make sure you are adding the following in your gradle file (replace annotationProcessor with kapt source ):

    repositories {
      mavenCentral()
      google()
    }
    
    dependencies {
        implementation 'com.github.bumptech.glide:glide:4.8.0'
        kapt 'com.github.bumptech.glide:compiler:4.8.0'
    }
    


    Add AppGlideModule implementation in your application GlideSource (You may override the default methods overrideSource):

    import android.content.Context
    import com.bumptech.glide.GlideBuilder
    import com.bumptech.glide.annotation.GlideModule
    import com.bumptech.glide.load.engine.DiskCacheStrategy
    import com.bumptech.glide.module.AppGlideModule
    import com.bumptech.glide.request.RequestOptions
    import com.bumptech.glide.signature.ObjectKey
    
    @GlideModule
    class AppNameGlideModule : AppGlideModule() {
    
        override fun applyOptions(context: Context, builder: GlideBuilder) {
            super.applyOptions(context, builder)
            builder.apply { RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL).signature(ObjectKey(System.currentTimeMillis().toShort())) }
        }
    
    }
    


    While using glide, use GlideApp instead of Glide, example:

    GlideApp.with(context)
                .load(url)
                .into(imageView)
    
    0 讨论(0)
提交回复
热议问题