4 votes

Android Studio ne trouve pas de variable locale dans le débogueur

Lorsque j'essaie de déboguer mon application, je ne peux pas voir les valeurs des variables dans le débogueur.

J'ai l'erreur suivante lorsque j'essaie d'évaluer une expression par exemple (même chose avec les variables watchers) :

Cannot find local variable 'data' with type com.myorg.myapp.data.objects.DataToUpdate

L'IDE semble comprendre le type de ma variable mais il ne peut pas la trouver.

La variable est utilisée juste après, elle n'a donc pas été optimisée.

Je crois que le code a été optimisé, mais seulement en partie.

J'ai construit un apk et l'ai décompilé avec quelques décompilateurs en ligne pour voir s'il était minifié ou autre.

  • Une partie de mon code n'est pas
    • Les champs de ma classe sont corrects, je peux voir leurs valeurs dans le débogueur et leur nom est le même que dans mon code.
  • Cependant, d'autres parties de mon code semblent être optimisées (les noms de variables ne sont pas les mêmes)
    • Ex : ma variable "data" de type DataToUpdate devient "DataToUpdate r118" dans le code décompilé

Je n'avais rien mis dans le debug buildType de mon build.gradle . J'ai ajouté les lignes suivantes en fonction de ce que j'ai vu sur le web pour essayer de le faire fonctionner :

buildTypes {
        debug {
            debuggable true
            testCoverageEnabled = false
            minifyEnabled false
            useProguard false
        }

}

J'utilise Android Studio 4.0 Beta 4 mais cela ne fonctionnait pas non plus de manière fiable dans Android Studio 3.6.

0voto

leb1755 Points 773

J'ai fini par utiliser le logcat pour comprendre et ensuite corriger les bogues dans mon code.

Le débogueur a fonctionné dans d'autres méthodes, il peut donc être utile d'essayer de reproduire le problème dans d'autres méthodes, pour le déboguer là.

Un débogueur fonctionnant comme prévu serait préférable, mais je n'ai pas réussi à le faire fonctionner dans cette méthode particulière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X