Приложение Android вылетает в эмуляторе - пустые логи - PullRequest
0 голосов
/ 29 марта 2010

Я совершенно новичок в Android и в значительной степени новичок в Java.

У меня есть простое приложение, которое я создаю, чтобы освоить среду разработки Android - и такие вещи, как события щелчка и т. Д.

Приложение загружается, и я могу изменить текст в текстовом поле с помощью обработчика кнопок.Однако, когда я импортирую класс местоположения и пытаюсь сделать простой вызов GPS, приложение вылетает.

Проблема в том, что все выглядит хорошо в Eclipse (консоль ошибок) - и я не вижу никаких исключенийв эмуляторе андроида (DevTools).У меня открыто окно logcat, но я ничего не сделал в eclipse / code, чтобы что-либо посылать logcat (мне нужно?)

Может кто-нибудь увидеть что-то не так с этим?Есть ли лучший способ устранения неполадок?

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;
        }
    }

Ответы [ 3 ]

4 голосов
/ 29 марта 2010

Вам не нужно ничего писать, чтобы получать сообщения по умолчанию в LogCat; отчеты о неперехваченных исключениях должны появляться автоматически при сбое вашей программы. Однако иногда LogCat и ваш эмулятор отключаются друг от друга, и сообщения просто исчезают. Просто закройте Eclipse и эмулятор, перезапустите их оба, и сообщения должны появиться снова. Простой способ узнать, была ли ссылка восстановлена, во время загрузки эмулятора. Подобно тому, как мигающий текст «ANDROID» причудливого шрифта исчезает, и вы попадаете на экран блокировки, вы должны увидеть около ста строк текста, проносящихся на LogCat. Если этого не произойдет, LogCat не будет получать свои сообщения.

Способ отображения сообщений отладки в Android - использовать Log.d("some name for your log statements so you can filter the LogCat messages", "The actual debug statement here");. Вы часто будете встречать людей, использующих такие вещи, как static final String LOG_TAG в своем приложении, чтобы они могли убедиться, что их журналы всегда имеют одинаковый тег, и, следовательно, фильтр никогда не пропускает сообщение.

Что касается вашего фактического кода здесь, Rpond прав, вы никогда не инициализировали свой объект GPSLocation.

2 голосов
/ 29 марта 2010

Ваш объект GPSLocation является нулевым. Вам нужно получить доступ к LocationService, чтобы получить текущее местоположение. А с эмулятором вам нужно будет вручную отправлять местоположения.

Услуги определения местоположения

1 голос
/ 14 февраля 2011

Иногда LogCat «забывает», что у вас подключено и работает устройство / эмулятор. Похоже, что это происходит после того, как вы одновременно подключили устройство и эмулятор, а затем отключили одно из них. Если вы ничего не получаете от LogCat, перейдите в «Окно»> «Показать представление»> «Другие»> «Устройства», а затем щелкните устройство, на которое хотите войти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...