Logcat n'affiche pas mes appels de journal


114

Je suis un noob total dans la programmation Android et je voulais apprendre à déboguer mes applications. Je n'arrive pas à afficher mes appels Log.i | d | v dans le LogCat.

Voici le code que j'utilise. Comme vous pouvez le voir, j'ai défini une constante LOG_TAG, mais je n'arrive pas à la trouver dans le LogCat. J'ai également importé android.util.Log ET je me suis assuré que dans mon AndroidManifest, j'ai défini "debuggable" sur TRUE.

J'ai également vérifié http://developer.android.com/reference/android/util/Log.html sans aucune chance pour résoudre ce problème.

Qu'est-ce que je fais mal? Est-ce que je cherche même au bon endroit? J'ai également essayé d'utiliser la perspective DDMS et Debug sans aucune chance. Toute aide à ce noob serait grandement appréciée. Merci.

Mon environnement: Windows XP IDE = Version Eclipse: 3.6.1, ID de construction: M20100909-0800 Emulator = en le faisant pointer vers Android SDK 2.1 api 7

// Code HELLO World très basique avec quelques appels Log.i

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class debugger extends Activity {
    private static final String LOG_TAG = "debugger";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.i(LOG_TAG, "line 13");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.i(LOG_TAG, "CREATING NOW");
    }
}

Il semble que vous n'ayez rien fait de mal, êtes-vous sûr que votre activité est en cours de démarrage? Avez-vous défini des filtres dans la vue logcat? Avez-vous essayé la version en ligne de commande de logcat? (adb logcat)
Cheryl Simon

Oui, j'ai essayé la ligne de commande et la sortie dans un fichier txt et je ne l'ai toujours pas trouvée. Je sais que l'activité a démarré car je vois le message «Hello World» dans l'émulateur. J'ai essayé de visualiser le logcat avec et sans filtres et toujours pas de chance.
Cavachon

Essayez la ligne de commande adb logcat et ne filtrez rien en premier. Je suis presque sûr que votre code fonctionne et s'imprime dans le journal.
Heikki Toivonen

LogCat fonctionne-t-il du tout? Par exemple, voyez-vous les entrées de journal d'autres applications (applications système, par exemple)?
Vit Khudenko

Cela peut être spécifique à l'appareil. nous devons parfois activer les journaux du menu caché du téléphone stackoverflow.com/a/43999262/2783229
nitesh

Réponses:


143

Lorsque vous utilisez Eclipse, dans la perspective DDMS, assurez-vous que le bon périphérique (probablement emulator-xxxx) est sélectionné et mis en surbrillance. Ce n'est qu'alors que vous obtiendrez la sortie logcat dans la vue logcat.

De plus, le plugin Android est un peu bizarre et ne montre parfois que la dernière ligne dans la vue logcat. Si cela se produit, essayez d'effacer le journal. Après cela, vous devriez obtenir à nouveau toutes les entrées de journal (cela fonctionne de toute façon pour moi).


Oui, tous les problèmes que j'ai rencontrés également. Si vous faites défiler la vue Logcat, elle ne défilera pas automatiquement avec les futures mises à jour tant que vous ne retournerez pas vers le bas.
Mike Yockey

2
Ha! J'ai combattu ça pendant un moment. J'ai ouvert DDMS et j'avais sélectionné un ancien émulateur. Pourquoi il n'est pas par défaut l'émulateur en cours d'exécution est étrange.
Will Curran le

La réponse de ddewaele a résolu mon problème, il vous suffit de laisser LogCat là où il devrait se concentrer. En remarque, vous n'avez pas à changer de perspective pour afficher le menu des appareils. Allez simplement dans Fenêtre >> Afficher la vue >> Autre >> Android >> Appareils pour afficher le panneau des appareils
Jay

@yock Je pense que c'est intentionnel, car on suppose que vous voulez vous arrêter et lire au point où vous avez fait défiler.
Michael Mior

1
Hahaha je suis tellement stupide que je ne sais pas ce qu'est le DDMS et même où le trouver.
Neon Warge

71

Si tout le reste échoue:

J'ai fait toutes les choses ci-dessus et je n'ai pas pu comprendre ce qui n'allait pas,

Testez avec:

adb logcat

pour comprendre que mes entrées étaient en fait dans logcat, mais c'était les bizarreries d'adt.

Réparer:

Redémarrer eclipse

C'était la seule chose qui a résolu le problème.


1
Cela fonctionne, mais je ne peux pas continuer à redémarrer Eclipse car ce problème se produit souvent pour moi. Quelqu'un at-il une meilleure solution?
Khaled Alanezi

@KhaledAlanezi devrait alors envisager d'utiliser logcat à partir de l'invite de commande ou de Windows PowerShell (mieux).
Dheeraj Bhaskar

1
Je viens de redémarrer eclipse à chaque fois que cela se produit et cela résout toujours le problème. cela arrive généralement une fois par jour mais je suis déjà habitué à être déçu de l'éclipse ..
programmeur

2
@programmer ne soyez plus déçu de l'éclipse, passez à Android Studio, mon ami :)
Dheeraj Bhaskar

1
Pour moi, utiliser un émulateur sur une machine distante, le redémarrage de l'éclipse ne fonctionne pas Logcat ne montre jamais rien mais adb logcatc'est un bon conseil, cela fonctionne donc avec un vote positif.
soger

12

J'ai eu le même problème avec Android Studio et j'ai réussi à me déplacer en sélectionnant No Filtersdans la boîte de sélection dans le coin supérieur droit de LogCat. En faisant cela, j'ai commencé à recevoir tous les journaux Android en arrière-plan dans LogCat, y compris mes appels de journal manquants.

entrez la description de l'image ici



6

J'ai compris que j'importais automatiquement com.sileria.Log (à partir d'un projet de bibliothèque) au lieu de android.util.Log , où ce dernier était le bon. Vérifiez également vos importations.


3

J'ai remarqué qu'Eclipse lançait parfois une exception au démarrage d'une application Android, puis LogCat arrête la mise à jour. J'ai corrigé cela en redémarrant simplement Eclipse. Je ne sais pas si vous avez essayé cela et je sais que c'est loin d'être une solution optimale, mais je soupçonne que le plugin Eclipse a encore quelques bugs à corriger.


3

Moyen le plus simple:

Vérifiez dans la fenêtre de votre chat - bouton PAUSE du coin SUPÉRIEUR DROIT || (Suspendre la réception de nouveaux messages logcat)

Quelques clics + finalement redémarrer eclipse (fonctionne généralement dans mon cas)


3

J'avais besoin de redémarrer le service adb avec la commande adb usb

Avant cela, je recevais tous les journaux et j'étais capable de déboguer, mais je n'obtenais pas mes propres lignes de journal (oui, je recevais la journalisation système associée à mon application).


J'ai aussi ceci - ne pas avoir ses propres lignes de journal. Mais cela n'a pas aidé :(
Ixx

2

Il y a un certain nombre de raisons pour lesquelles vous pourriez ne pas voir les journaux, dont la plupart sont répertoriées ci-dessous. Voici quelques étapes pour vérifier la plupart des raisons:

  1. Assurez-vous que vous n'avez pas "android: debuggable =" false "" dans votre AndroidManifest.xml
  2. Assurez-vous que votre logcat n'est pas en pause et assurez-vous que vous faites défiler vers le bas
  3. Vos filtres doivent être "sans filtre" ou votre application actuelle
  4. Vous avez sélectionné le bon périphérique dans votre liste de périphériques logcat
  5. Si vous ne recevez aucun message, essayez de redémarrer adb. Vous pouvez le faire à partir d'Android Studio en cliquant sur l'icône `` redémarrer '', c'est juste après l'icône d'impression de logcat et cela ressemble à une flèche courbe verte sortant d'une boîte. Si vous ne le voyez pas, passez la souris sur le '>>' qui continue le menu d'icônes lorsque le logcat est trop petit.

2

Sur Android Studio: Cliquez sur la flèche verte pointant vers la droite pour redémarrer la journalisation; s'il n'est pas visible, cliquez sur les icônes >> pour le localiser.


1

Je suis également nouveau sur Android-Eclipse. Voici ce qu'il m'a fallu pour que les messages LogCat s'affichent dans Eclipse: 1: ajoutez ceci à la classe dans laquelle le message logcat est appelé: private static final String TAG = "MyActivity"; (par la documentation ici )

2: ajoutez ce Log.i (TAG, "inLayout - done"); lorsque vous souhaitez afficher un message

Si ce qui précède ne fonctionne pas, fermez Eclipse, redémarrez-le et relancez votre projet.

Cela devrait alors fonctionner.


1

Il y a encore une chose à surveiller:

En haut à droite du logcat, il y a une table déroulante pour filtrer les messages par type. Assurez-vous qu'il est au niveau que vous recherchez (s'il sera au niveau d'assert, il laissera probablement votre logcat vide).


1

Accédez au Gestionnaire des tâches et supprimez le processus adb.exe. Redémarrez votre éclipse à nouveau.

ou

essayez adb kill-server puis la commande adb start-server .


1

Ce n'est probablement pas correct, et un peu plus long, mais j'ai résolu ce problème (Android Studio) en utilisant ceci:

System.out.println("Some text here");

Comme ça:

try {
       ...code here...
} catch(Exception e) {
  System.out.println("Error desc: " + e.getMessage());
}

1

J'ai passé plusieurs heures sur un tel cas. Je n'ai vu que les journaux des touches tactiles. Rien de plus. Le problème était ... le smartphone. Après le redémarrage était OK. La déconnexion du câble a provoqué le retour du problème. J'ai dû le redémarrer à nouveau. On dirait que la communication USB Android n'est pas bien conçue.


Je vous remercie! En fait, c'était le paramètre USB dans le menu rapide du téléphone ... en ce qui concerne le débogage USB. J'avais pris l'habitude de passer de Charge uniquement à Transférer des fichiers. MAIS, la charge uniquement est ce qui a fait fonctionner la journalisation. Je reviens juste à la programmation Android après quelques années d'absence, et cela a vraiment gêné ma courbe d'apprentissage.
wwfloyd

Ensuite, je n'obtenais qu'une partie de la journalisation ... tout ce qui a été récemment ajouté a été ignoré. Vous avez obtenu cela avec Clean and Rerun, dans Android Studio.
wwfloyd

1

SOLUTION RAPIDE.

Redémarrez simplement l'éclipse

Fonctionne parfaitement.


0

En utilisant le SDK 4.0.3, vous devez le sélectionner explicitement sur les configurations de débogage> projet> cible, sinon il ne s'affichera jamais en utilisant Eclipse Indigo (3.7). Bien sûr, un redémarrage de l'éclipse s'ensuit.


0

J'ai également eu un problème pour voir une sortie de journal simple dans logcat. Mon problème a été résolu lorsque j'ai installé le dernier JDK. Je viens de configurer une nouvelle machine de développement et j'ai seulement installé le JRE et l'installation du JDK a fonctionné pour moi.


0

Aucune des autres réponses n'a fonctionné pour moi, mais cela a fonctionné:

J'ai supprimé mon projet de mon espace de travail, puis supprimé tout ce qui commençait par un point (.settings, .project, etc.) du dossier du projet. Ensuite, j'ai réimporté le projeté. Il me manque certains paramètres et points d'arrêt, mais au moins cela fonctionne.


0

J'avais rencontré ce problème et rien ne semblait fonctionner jusqu'à ce que je déplace l'appel de journal dans un gestionnaire. Maintenant, cela fonctionne à chaque fois, peu importe où vous en êtes.


0

J'ai fait l'erreur de saisir un terme de recherche dans la zone de recherche de logcat. J'ai oublié de le supprimer et je n'ai donc pas pu voir les nouveaux journaux. Puisqu'ils ne correspondent pas à mon terme de recherche et n'ont pas été affichés.


0

Dans mon cas, j'ai dû supprimer cette ligne:

    <application
         android:debuggable="false"  <!-- Remove this line -->
         ..../>

De la balise Application dans mon fichier Manifest.


0

La meilleure solution pour moi était de redémarrer le serveur adb (alors que j'ai activé l'intégration ADB dans le studio Android - Outils - Android - coché). Pour ce faire rapidement, j'ai créé un adbr.batfichier dans le android-sdk\platform-toolsrépertoire (où se adb.exetrouve) avec ceci à l'intérieur:

adb kill-server
adb start-server

Parce que j'ai ce dossier dans la variable système PATH, toujours lorsque j'ai besoin de redémarrer à adbpartir du studio Android, je ne peux écrire que dans le terminaladbr et c'est fait.

Une autre option pour ce faire est via Android Device Monitor dans l' onglet Appareils - Menu après avoir cliqué sur la petite flèche à droite - Réinitialiser adb .


0

Pour l'éclipse: 1) Accédez à la perspective ddms. 2) Assurez-vous que le bon périphérique est sélectionné. 3) S'il est déjà sélectionné et n'affiche pas les journaux, redémarrez ABD. * J'espère que cela résoudra.


0

J'ai également redémarré le service ADB avec "adb usb" et corrige le problème pour moi. En fait, une seule de mes activités n'était plus enregistrée. Tous les autres ont consigné des trucs. Après le redémarrage adb, tout fonctionne à nouveau comme un charme. Pour les autres personnes qui recherchent une autre solution: adb kill-server, adb start-server dans CLI résoudront souvent votre problème également.


0

forcez la fermeture de votre application une fois que cela redémarrera LogCat ...

utilisez ceci pour forcer la fermeture: D

setContentView(BIND_AUTO_CREATE);

0

Parfois, le problème ne vient pas du PC, d'autre part IDE, ADB, etc., mais il provient de votre appareil qui n'envoie pas de journaux à ADB, donc si vous avez essayé toutes les méthodes mentionnées précédemment et que votre logcat est toujours vide, essayez de redémarrer votre appareil et réessayer.J'ai essayé toutes les méthodes mentionnées ci-dessus et aucune d'elles n'a fonctionné, mais après un redémarrage sur mon téléphone, logcat a fonctionné comme par magie


Comment vérifier si l'appareil est capable d'envoyer des journaux à ADB?
JCarlosR

@JCarlos essayez de redémarrer votre appareil si aucune des solutions ci-dessus ne fonctionne
Code_Worm

AndroidMonitor affiche les messages lorsque j'utilise Loget exécute l'application à partir de mon smartphone, mais cela ne fonctionne pas à partir de ma montre intelligente. Je cherchais les réglages mais tout semble bon.
JCarlosR

0

J'ai ces problèmes et corrigé, String TAG sans espace:

"my tag" //
noting show "my_tag" // est ok


0

Dans mon cas, je devais juste ajouter un nom à la chaîne. En premier lieu, j'avais juste un espace entre les crochets

private static final String TAG = " ";

mais après avoir ajouté un nom, cela fonctionnait parfaitement.

private static final String TAG = "oncreate";

0

Après la mise à niveau vers Android 3.6.1, j'ai rencontré ce problème plusieurs fois. La seule chose qui fonctionne dans mon cas est de REDÉMARRER L'APPAREIL.

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.