2017-10-12 1 views
0

J'ai ce code:Erreur lors du débogage foreach avec hashmap

for (RoomProperties RP : roomHashMap.values()) { 
    canvas.drawRect(RP.left, RP.top, RP.right, RP.bottom, snowWhite); 
} 

il est correctement compilé. Mais le rectangle simplement ne sera pas dessiné, donc je suis entré dans le mode de débogage et bien sûr il y a ces erreurs:

RP.left Vous ne trouvez pas variable locale « RP » RP.right Vous ne trouvez pas la variable locale « RP »

Maintenant, c'est pratiquement déroutant. Supposons que je n'ai pas obtenu le pour chaque droit, mais pourquoi a-t-il été compilé et exécuté ???

Quelle est la bonne façon de faire foreach et ce qui ne va pas avec le compilateur ne pas signaler l'erreur (j'ai probablement ignoré les avertissements)?

+0

Comment cela se rapporte-t-il au gradle? – Opal

+0

Je suis désolé, je pensais Gradle est un compilateur complet utilisé dans le studio android ... – VictorCharlie23

+0

Comme écrit par Huss, c'est le débogueur ne trouve pas d'informations sur le nom de la variable. Un projet Android Studio (récent) standard, comme à partir de la version 2.0+, devrait automatiquement [construire la variante de débogage] (https://developer.android.com/studio/run/index.html#changing-variant) tant que vous ne construisez pas explicitement la version ou ne modifiez pas les configs. Certains problèmes peuvent survenir avec certaines configurations de Gradle .. mais il est difficile de le dire sans plus d'informations. Cette [Question sur le débogage avec Android Studio] (https://stackoverflow.com/q/37142275/3828957) peut aussi être intéressante. – makadev

Répondre

1

Je suspecte le ne peut pas trouver la variable locale message que vous voyez est le débogueur vous informant qu'il est incapable de résoudre la variable locale pour vous. Dans ce cas, il ne s'agit pas du tout d'un problème d'exécution et il est facile de le corriger en vérifiant que vous avez compilé votre code Java avec "générer des informations de débogage" ou une option similaire activée. Cela ajoutera des informations supplémentaires au code compilé pour aider le débogueur. Bonne chance avec votre débogage!