2010-03-29 110 views
0

我完全陌生於android,幾乎是一個Java newb。Android應用程序在模擬器中崩潰 - 日誌空白

我有一個簡單的應用程序,我建設得到Android的開發環境的竅門 - 事情就是這樣的點擊事件,等等。

的應用程序加載時,我能夠改變一個文本框的文本使用按鈕處理程序。但是,當我導入位置類時,嘗試進行簡單的GPS調用時,應用程序會崩潰。

問題是,在Eclipse(錯誤控制檯)一切看起來不錯 - 我沒有看到任何例外的android模擬器(DevTools)。我有logcat窗口打開,但我沒有做任何事情在eclipse /代碼發送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; 
     } 
    } 
+1

你一定要在LogCat中看到異常。您不會在Eclipse錯誤控制檯中看到任何內容。 – 2010-03-29 14:40:16

+0

@mbaird - 我有logcat打開,但沒有錯誤。我讀過一篇文章,其中啓用了mylyn插件可能會導致此問題,但我沒有安裝該插件。任何想法爲什麼Logcat不工作 - 我需要做些事情來啓動它嗎? – tpow 2010-03-29 16:56:11

回答

4

你不應該需要寫什麼就在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");。您經常會發現人們在應用程序中使用諸如靜態最終字符串LOG_TAG之類的東西,以便他們可以確保其日誌始終具有相同的標記,因此,過濾器絕不會錯過任何消息。

至於你的實際代碼,Rpond是正確的,你從來沒有初始化你的GPSLocation對象。

2

您的GPSLocation對象爲空。您需要訪問LocationService以獲取當前位置。使用模擬器,您需要手動發送位置。

Location Services

1

有時LogCat'忘記'你有一個設備/仿真器連接並運行。看起來好像在你同時有一個設備和一個仿真器在線的情況下發生,然後斷開其中一個。如果您沒有從LogCat中獲取任何信息,請轉到窗口>顯示視圖>其他>設備,然後單擊您要記錄的設備。

相關問題