2012-12-16 347 views
0

我對Android非常陌生,所以很有可能我沒有做一些簡單的事情給我這個問題。只要我嘗試運行我的應用程序,它立即關閉,我不知道爲什麼。應用程序崩潰了

這裏是我的Java代碼:

package com.example.androidside; 
import java.util.List; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.ActivityManager; 
import android.util.Log; 
import android.view.Menu; 
public class MainActivity extends Activity { 
    public static final String TAG = "MyActivity"; 
    ActivityManager am; 
    int s; 
    List<ActivityManager.RunningAppProcessInfo> l; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     l = WhatchyaDoin(); 
     s = l.size(); 
     for(int i = 0; i < s; i++) { 
      Log.d(TAG, "" + l.get(i)); 
     } 
    } 
    public List<ActivityManager.RunningAppProcessInfo> WhatchyaDoin() { 
     return(am.getRunningAppProcesses()); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
} 

如果有人可以幫助我將不勝感激,謝謝。

+0

歡迎SO爲了幫助我們更好地瞭解任何問題,你可能有,它會盡可能多地發佈詳細信息,包括LogCat錯誤! –

回答

1

您尚未初始化am,並且在從onCreate()撥打電話WhatchayDoin()時正在獲得NullPointerException

您應該學習如何從程序中讀取logcat輸出。 (在Eclipse中,您可以打開logcat視圖,方法是轉到Window-> Show View-> Other,然後導航到Android-> LogCat。這通常會告訴您發生了什麼,如果您無法弄清楚,當您發佈有關Android的崩潰問題,始終包括相關的logcat輸出

您可以onCreate()與初始化am:!

am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
+0

哦,好吧,我一直認爲這與我的ActivityManager有關,但是我在網上找不到任何關於它的信息,如果你不介意我問,你能解釋一下你爲我提供的代碼嗎?我知道你必須發起活動經理,但我不完全瞭解你的工作方式。 –

+0

@ user1907350 - ['getSystemService(String)'](http://developer.android.com/reference/android/app/Activity.html#getSystemService%28java.lang.String%29)是一個方法在'Activity '類,用於獲取對各種服務對象的引用,包括'ActivityManager'。由於該方法被聲明爲返回一個「對象」,因此您需要將其轉換爲特定類型的「對象」,文檔會說它返回您傳遞的任何參數。 'ACTIVITY_SERVICE'只是一個常量,被定義爲你的活動從'Context'類繼承的字符串'「activity」。 –

+0

我明白了,非常感謝特德,你一直以來都是一個巨大的幫助。這實際上是我與大學裏其他人一起工作的一個項目的開始,這個android應用程序只是一個部分。我在你的個人資料上看到你開發了教育應用,所以我認爲我們正在做的事可能會讓你感興趣。我們基本上正在嘗試開發一個系統,以便學生可以在課堂上使用他們的android設備進行講座和測試。該應用程序將監控學生電話上運行的內容,並將該信息發送到教師可以通過Java Servlet/Website進行監控的服務器。 –