web-dev-qa-db-fra.com

Référence non résolue: GlideApp en activité écrite en Koltin

En bref, mon problème est que je ne peux pas utiliser GlideApp (API générée) dans une activité écrite en Kotlin . Assez intéressant de voir que Android Studio voit la référence, je peux ouvrir le GlideApp généré, le code est complet, mais lorsque je essayez de le construire, puis il échoue avec "Référence non résolue: GlideApp"

Le module glide a été implémenté en Java car la plupart des applications sont écrites en Java. 

Une idée?

6
Alex

Utilisez-vous kapt au lieu de annotationprocessor dans le fichier gradle? Prise en charge de l’API générée V4 Kotlin

9
karandeep singh

Pour ceux comme moi qui avaient utilisé kapt comme suggéré par karandeep mais qui avaient toujours le problème - vous devez créer une implémentation AppGlideModule:

// AppGlidModule.kt
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.module.AppGlideModule

@GlideModule
class AppGlideModule : AppGlideModule()

Après avoir reconstruit le projet, vous pouvez importer la variable GlideApp (code généré).

Plus à ce post moyen

5
kip2

quiconque est toujours confronté à un problème après avoir étendu AppGlideModule et ajouté

kapt 'com.github.bumptech.glide: compilateur: 4.8.0'

alors n'oubliez pas d'inclure 

appliquer le plugin: 'kotlin-kapt'

sur l'application ou le module build.gradle

4
dastan

Vous pouvez utiliser Glide au lieu de GlideApp.

Glide.with(context)
            .load(image)
            .apply(RequestOptions().placeholder(R.drawable.image_placeholder))
            .into(imageView);
2
Ivo Stoyanov

Pour ajouter l'application Glide, vous devez ajouter:

implementation 'com.github.bumptech.glide:glide:4.8.0'

Ensuite, vous pouvez utiliser

Glide.with (..)

Ce code utilise par défaut Glide . Si vous souhaitez personnaliser Glide, vous devez ajouter

pour kotlin:

kapt 'com.github.bumptech.glide:annotations:4.9.0'

ou pour Java:

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

Une fois que vous synchronisez le projet, vous devez ajouter une classe de module Glide à votre projet:

@GlideModule
public class CustomGlideModule extends AppGlideModule {
    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
        //register some components
    }
}

Une fois que vous reconstruisez le projet, la nouvelle classe GlideApp sera automatiquement générée . Vous pouvez maintenant utiliser Glide avec le code suivant:

GlideApp.with (..)

0
Mladen Rakonjac