J'ai mis à jour Android Studio de 2.x à 3.x le week-end dernier. La migration du projet était parfaite, la construction était excellente. Et maintenant, à partir de 2 heures, je ne peux pas expliquer pourquoi, je ne peux pas construire, j'ai cette erreur sur Glide maintenant:
Erreur: (26, 22) erreur: impossible de trouver la classe de symboles GlideApp
Tout était bien avant, je n'ai rien changé (gradé ou configuration), et maintenant cette erreur apparaît ...
Pour plus d'informations sur Glide, dans mon Gradle:
annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0-RC1'
compile 'com.github.bumptech.glide:glide:4.0.0-RC1'
compile 'com.github.bumptech.glide:okhttp3-integration:4.0.0-RC1'
Le fichier GlideApp est généré automatiquement (je l'ai vérifié).
Donc, c'est une situation folle. Merci beaucoup les gars!
Certaines de ces situations ont tendance à apparaître de temps en temps (pour une instance avec la classe générée R
, où elle finit par ne pas être générée). Le moyen le plus simple que j'ai résolu dans le passé est de nettoyer le projet et de le reconstruire. Et si cela ne fonctionne pas, appuyez sur File
dans le menu principal, puis appuyez sur "Invalider les caches et redémarrer". Une deuxième fenêtre apparaît, appuyez sur "Invalider les caches et redémarrer". Cela peut prendre un peu de temps car Android Studio doit réindexer et reconstruire le projet, mais cela résout la plupart des problèmes que j'ai rencontrés.
La même chose m’est arrivée et c’est l’une des erreurs les plus étranges que j’ai jamais eues, J'ai utilisé Butterknife dans mon projet et j’ai découvert que si vous définissez les vues en mode privé, vous obtenez cette erreur.
utilisation:
@BindView(R.id.tv_option_one)
TextView tv_option_one;
@BindView(R.id.tv_option_two)
TextView tv_option_two;
au lieu de
@BindView(R.id.tv_option_one)
private TextView tv_option_one;
@BindView(R.id.tv_option_two)
private TextView tv_option_two;
cela arrive surtout lorsque Butterknife ne trouve pas la vue lorsque vous utilisez bindView ou l'annotation onClick, et le pire, c'est qu'elle affiche les erreurs partout, sauf à l'endroit où elles devraient se trouver.
Glide 4.x introduit des changements décisifs. Assurez-vous de suivre les instructions de la page Téléchargement et configuration de la documentation Glide . Ne négligez pas les modifications apportées dans proguard.cfg
. Après les modifications, reconstruisez votre projet et vous devriez pouvoir accéder à GlideApp
.
J'ai rencontré le même problème lorsque j'ai migré vers AndroidX. J'ai fini par le résoudre en ajoutant/mettant à jour les dépendances dans
implementation 'com.github.bumptech.glide:glide:4.8.0-SNAPSHOT'
kapt 'com.github.bumptech.glide:compiler:4.8.0-SNAPSHOT'
kapt 'androidx.annotation:annotation:1.0.0-rc01'
J'ai relevé ce problème lorsqu'un sous-package utilise GlideApp avec AppGlideModule en cours d'extension dans une classe d'un niveau supérieur dans la hiérarchie du package.
Je suppose que le compilateur tente de compiler les classes de sous-package avant de générer GlipeApp.
Ma solution consistait à étendre AppGlideModule dans un module séparé, puis à l'ajouter en tant que dépendance à tous les modules utilisant GlideApp.
Dans mon cas, j'ai oublié d'appliquer le plugin kapt. Je l'ai donc simplement ajouté à mon build.gradle
au niveau du module.
apply plugin: 'kotlin-kapt'
Vous pouvez trouver plus de détails à ce sujet - Glide Docs
ajoutez ces dépendances comme si
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
Ajouter des dépendances dans build.gradle (app)
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
Utilisez Glide au lieu de GlideApp dans le code
Glide.with(context).load("http://image_url").into(imageView);
Assurez-vous d’avoir une autorisation Internet dans Manifest.xml si vous accédez à partir de l’URL.