因为要用android开发一个网站的WCF程序,所以今晚花了6个小时来调试一个小类..

   开始的时候以为是刚接触android,就觉得问题是发生在android的配置或有关的问题上..

   但是后来才发现,问题原来只是发生在一条java语句:

类变量在声明初始化的时候不能调用其他方法!

   错误代码如果:

public class SelectedActivity extends Activity {
    private Button btnMycourse;
    private Button btnCourseId;
    private Button btnCourseDetail;
    private Button btnMyJob;
    private Button btnJobId;
    private Button btnJobDetail;
    private Button btnClassNumber;
                                                                                                                                                                                                                                                                                                                                                                              
    private Intent it = super.getIntent();
    private String session = it.getStringExtra("session");
    private String userName =  it.getStringExtra("userName");
                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                              
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...


   然后修改了10、11和12行的代码程序就正常运行了:

public class SelectedActivity extends Activity {
    private Button btnMycourse;
    private Button btnCourseId;
    private Button btnCourseDetail;
    private Button btnMyJob;
    private Button btnJobId;
    private Button btnJobDetail;
    private Button btnClassNumber;
                                                                                                                                                                                                                                                                                                                                            
    private Intent it;
    private String sessionID ;
    private String userName;
                                                                                                                                                                                                                                                                                                                                            
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        it = super.getIntent();
        sessionID = it.getStringExtra("sessionID");
        userName =  it.getStringExtra("userName");


   对于一个用了一年多java的人来说,这是一个低级中的低级错误!

   所以为了给自己一个小小惩罚,罚自己做了100俯卧撑(虽然平时锻炼也有做,

   不过那都是做完一组就休息好再做另一组的,今晚是做完一组休息几秒就立刻做)

   至于为什么要写这篇博客,原因就是让自己好好记住这个教训,避免以后不犯这种错误..

   也好让大家鄙视一番..能让自己有一个好的总结。


   小小总结如下:

   1):发生错误时,要找准错误的定位,而不是凭着自己的感觉,例如这次的错误提示:


   


   因为ADT日志不能复制(可能是我不会复制),所以截图,可能截图看不清..

   我当时看到了第一句:“java.lang.RuntimeException: Unable to Start activity                  ComponentInfo{...” 以为就是关于activity注册问题或者配置错了,就一直往这个方向

   调试..

   却忽略了下面的一句:“Cause by :java.lang.NullPointerExection at com.example.scaucs.net.SelectedActivity.SelectedActivity.java

   其实这一句才是问题根源所在!


   2)不要一味地追求代码简化,其实开始的时候程序是正常的,后来我想简化代码就直接在

   声明的地方用其他方法赋值了,6个小时就这样浪费了。