2012-12-16 268 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进行监控的服务器。 –