2010-03-29 6 views
0

Je suis complètement nouveau pour Android, et à peu près un newb Java.Android App se bloque dans l'émulateur - journaux vides

J'ai une application simple que je construis pour obtenir le coup de l'environnement de développement Android - et des choses comme des événements de clic, etc ..

Les charges d'applications, et je suis en mesure de modifier le texte dans un champ de texte en utilisant un gestionnaire de boutons. Toutefois, lorsque j'importe la classe d'emplacement et que j'essaie de faire un simple appel GPS, l'application se bloque. Le problème est, tout semble bien dans Eclipse (console d'erreur) - et je ne vois aucune exception dans l'émulateur android (DevTools). J'ai la fenêtre de logcat ouverte, mais je n'ai rien fait en eclipse/code pour envoyer quelque chose de logcat (ai-je besoin?)

Quelqu'un peut-il voir quelque chose de mal à cela? Y a-t-il une meilleure façon de résoudre les problèmes?

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.*; 
import android.location.*; 


public class locationDisplay extends Activity { 

    private EditText text; 
    private Location GPSLocation; 
    double dblLat; 
    double dblong; 
    String strLat; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); // bind the layout to the activity 
     text = (EditText) findViewById(R.id.EditText01); 
     text.setText("No button pressed"); 

    } 

    // Handler for each button -- Button01 is when it crashes 
    public void myClickHandler(View view) { 

     switch (view.getId()) { 
     case R.id.Button01: 
      dblLat = GPSLocation.getLatitude(); 
      strLat = Double.toString(dblLat); 
      text.setText(strLat); 
      break; 
     case R.id.Button02: 
      text.setText("Button 2 was clicked"); 
      break; 
     case R.id.Button03: 
      text.setText("Button 3 was clicked"); 
      break; 
     } 
    } 
+1

Vous devriez certainement voir l'exception dans LogCat. Vous n'allez rien voir dans la console d'erreur Eclipse. –

+0

@mbaird - J'ai ouvert logcat, mais pas d'erreur. J'ai lu un article sur le fait que le plugin mylyn est activé, mais je n'ai pas installé ce plugin. Toutes les idées pour lesquelles Logcat ne fonctionne pas - dois-je faire quelque chose pour l'initier? – tpow

Répondre

4

Vous ne devriez pas avoir besoin d'écrire quoi que ce soit pour obtenir les messages par défaut dans LogCat; Les rapports d'exception non interceptés doivent apparaître automatiquement lorsque votre programme se bloque. Cependant, parfois LogCat et votre émulateur se déconnectent les uns des autres et les messages disparaissent tout simplement. Fermez simplement Eclipse et l'émulateur, redémarrez-les tous les deux et les messages doivent réapparaître. Un moyen facile de savoir si le lien a été rétabli est lors du démarrage de l'émulateur. Tout comme le texte clignotant "ANDROID" dans la police de fantaisie disparaît vous amenant à l'écran de verrouillage, vous devriez voir une centaine de lignes de texte sur LogCat. Si cela ne se produit pas, LogCat n'obtient pas ses messages.

La façon d'afficher les messages de débogage dans Android est d'utiliser le Log.d("some name for your log statements so you can filter the LogCat messages", "The actual debug statement here");. Vous trouverez souvent des personnes qui utilisent des choses comme une chaîne finale statique LOG_TAG dans leur application afin de s'assurer que leurs journaux ont toujours la même étiquette, et par conséquent, le filtre ne manque jamais un message. Comme pour votre code actuel ici, Rpond a raison, vous n'avez jamais initialisé votre objet GPSLocation.

2

Votre objet GPSLocation est null. Vous devez accéder à LocationService pour obtenir un emplacement actuel. Et avec l'émulateur, vous devrez envoyer des emplacements manuellement.

Location Services

1

Parfois, LogCat «oublie» qu'un périphérique/émulateur est connecté et en cours d'exécution. Il semble que cela se produise lorsque vous avez un appareil et un émulateur en ligne en même temps et que vous en déconnectez un. Si vous ne recevez rien de LogCat, allez dans Fenêtre> Afficher la vue> Autre> Périphériques, puis cliquez sur le périphérique que vous souhaitez connecter.

Questions connexes