Ошибка переполнения стека Android? - PullRequest
0 голосов
/ 26 августа 2011

Мой код работал нормально, но внезапно, когда я снова запустил код, это дало мне ошибку переполнения стека.Вот мой код: HelloDatePickerActivity уже была определена.

HelloDatePickerActivity daten=new HelloDatePickerActivity();
        static final int DATE_DIALOG_ID = 0;    
        Button mPickDate;
        TextView mDateDisplay;

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.offline_screen);

    mPickDate=(Button)findViewById(R.id.pickDate);

        mPickDate.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(DATE_DIALOG_ID); 
            }
        });        
    }
        @Override
        protected Dialog onCreateDialog(int id) {
            switch (id) {
            case DATE_DIALOG_ID:
                return new DatePickerDialog(this,
                            daten.mDateSetListener,
                            daten.mYear, daten.mMonth, daten.mDay);
            }
            return null;
        }         

}

И Logcat:

08-26 15:38:50.039: ERROR/AndroidRuntime(585): FATAL EXCEPTION: main
    08-26 15:38:50.039: ERROR/AndroidRuntime(585): java.lang.StackOverflowError
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at java.lang.Thread.currentThread(Thread.java:558)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at java.lang.ThreadLocal.get(ThreadLocal.java:53)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at android.os.Looper.myLooper(Looper.java:157)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at android.os.Handler.<init>(Handler.java:119)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at android.app.Activity.<init>(Activity.java:728)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:14)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerActivity.<init>(HelloDatePickerActivity.java:20)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.ACB_OnlineScreenActivity.<init>(ACB_OnlineScreenActivity.java:23)
    08-26 15:38:50.039: ERROR/AndroidRuntime(585):     at acb.xiynove.HelloDatePickerA

1 Ответ

2 голосов
/ 26 августа 2011
HelloDatePickerActivity daten=new HelloDatePickerActivity();

Вот ваша проблема. Подумай об этом.

Редактировать: В любом случае, вы должны понимать, что вызов new Activity() - это плохая практика программирования. К сожалению, я не могу предоставить справочную документацию, говорящую эту точную вещь. Несколько относительно полезных ссылок о создании новых видов деятельности.

...