Android: Comment puis-je imprimer une variable sur la console Eclipse


Réponses:


117

System.out.printlnet les Log.ddeux vont à LogCat, pas à la console.


1
L'utilisation de LibGDX et System.out.println va à la console. Je cherche un moyen de l'introduire dans logcat afin que je puisse connecter / déboguer mon application sur un appareil réel.
Madmenyo le

26

Fenêtre-> Afficher la vue-> Autre… -> Android-> LogCat


6

Je suis nouveau dans le développement Android et je fais ceci:

1) Créez une classe:

import android.util.Log;

Débogage de classe finale publique {
    débogage privé () {}

    public static void out (Object msg) {
        Log.i ("info", msg.toString ());
    }
}

Lorsque vous avez terminé le projet, supprimez la classe.

2) Pour imprimer un message sur le LogCat, écrivez:

Debug.out ("something");

3) Créez un filtre dans le LogCat et écrivez "info" dans l'entrée "by Log Tag". Tous vos messages seront écrits ici. :)

Conseil: créez un autre filtre pour filtrer toutes les erreurs afin de déboguer facilement.


8
Ce n'est pas une bonne idée d'écrire du code comme celui-ci car la classe Log est familière à la plupart ... tous les développeurs Android. En l'enveloppant dans votre propre classe et en n'ajoutant pas de nouvelles fonctionnalités, tout ce que vous faites est d'obscurcir la signification de votre code à des personnes autres que vous-même.
Thomas Dignan

6

L'écriture du code suivant pour imprimer quoi que ce soit sur LogCat fonctionne parfaitement bien !!

int score=0;
score++;
System.out.println(score);

imprime le score sur LogCat.


3

Je pense que le toast est peut-être une bonne méthode pour montrer la valeur d'une variable!


1
Le problème vient avec Toast lorsque les valeurs sont nombreuses et rapides, comme la journalisation des coordonnées ax, y sur ACTION_MOVE. Dans de tels cas, un texte d'écran ou une sortie de journal pourrait être une meilleure solution.
TechNyquist

1

Ok, Toast n'est pas complexe mais il a besoin d'un objet de contexte pour fonctionner, ça pourrait être MyActivity.this, alors vous pouvez écrire:

Toast.maketext(MyActivity.this, "Toast text to show", Toast.LENGTH_SHORT).show();

Bien que Toast soit une ressource d'interface utilisateur, son utilisation dans un autre thread différent du thread ui enverra une erreur ou ne fonctionnera tout simplement pas name.toString(). )


0

toast est une mauvaise idée, il est beaucoup trop "complexe" pour afficher la valeur d'une variable. utilisez log ou sop, et comme drawonward l'a déjà dit, leur sortie va à logcat. cela n'a de sens que si vous souhaitez exposer ces informations à l'utilisateur final ...


0

Si le code que vous testez est relativement simple, vous pouvez simplement créer un projet Java standard dans l'Explorateur de packages et copier le code, l'exécuter et le corriger, puis le recopier dans votre projet Android.

Le fait que System.out soit redirigé est assez ennuyeux pour tester rapidement des méthodes simples, mais c'est la solution la plus simple que j'ai trouvée, plutôt que d'avoir à exécuter l'émulateur de périphérique juste pour voir si une expression régulière fonctionne.


0

En passant, au cas où vous ne sauriez pas quel est l'emplacement exact de votre JSONObject dans votre JSONArray, je suggère d'utiliser le code suivant: (j'ai supposé que "jsonArray" est votre variable principale avec toutes les données, et je recherche l'exact objet à l'intérieur du tableau avec la fonction égale)

    JSONArray list = new JSONArray(); 
    if (jsonArray != null){
        int len = jsonArray.length();
        for (int i=0;i<len;i++)
        { 
            boolean flag;
            try {
                flag = jsonArray.get(i).toString().equals(obj.toString());
                //Excluding the item at position
                if (!flag) 
                {
                    list.put(jsonArray.get(i));
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }  
        } 
    }
    jsonArray = list;
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.